問題:
1.默認小頂堆,每次輸出最小值。為什么java要在已有Queue的基礎上提出優先佇列,僅僅是可以輸出最小的或者根據比較器輸出對應的值?這些功能之前的集合不都可以實作嗎?
2.存盤Pair、自定義類、Map時都需要自己定義構造器,與Queue、List有什么區別呢?他的優勢在哪里?
uj5u.com熱心網友回復:
1. Quequ 的 屬性是先進先出, PriorityQueue有在這個基礎上做了進一步的功能擴展,可以使得dequeue出來的元素改變原有的順序,給你個例子就可以解釋:在銀行排隊,如果只有queueu的結構,大家都是按照先到先被服務的順序。那么問題來了,如果有一個VIP客戶到銀行,他就必須排到最后等待,這樣銀行就會損失一個大客戶。如果這時候使用priorityQueue, 可以加入優先級,比如VIP最先,然后是年齡大的,最后是一般客戶先到先被服務。2. 沒種型別都有自己的特性,多讀讀檔案就了解了
uj5u.com熱心網友回復:
樓上,java的優先佇列是小頂堆,如果我要按照逆序輸出我就需要在優先佇列上添加比較器。跟我直接在Queue上添加比較器。最后的結果不是相同的嗎~轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/100447.html
標籤:Java相關
