更新時間:2020-04-14 13:12:07 來源:動力節點 瀏覽2529次
PriorityQueue屬于Java集合框架。PriorityQueue基于優先級堆,它是隊列接口的實現。當我們需要Queue實現時,可以使用此數據結構,并且我們需要根據每個元素的優先級以特定的排序順序維護該集合的元素。它是在JDK1.5中引入的。
JavaPriorityQueue關鍵點
實例化PriorityQueue時,可以在構造函數中提供比較器。然后隊列中的項目順序將根據提供的比較器決定。
如果沒有提供比較器,則將使用該集合的自然順序(Comparable)來對元素進行排序。
這個集合中不允許null。
隊列頭是訂單中最少的項目。
PriorityQueue元素之間的排序關系是任意決定的。
PriorityQueue不同步。PriorityBlockingQueue是PriorityQueue的線程安全對象。
PriorityQueue是無限的,它根據隊列中元素的數量動態增長。它在任何時候都具有內部容量,并隨著元素的添加而增加。這種內部能力和增量的政策沒有具體規定或標準化。
此PriorityQueue的iterator()不保證以任何特定順序遍歷隊列元素。
表現明智;remove()和contains()方法需要線性時間。peek(),element()和size()需要固定的時間。offer(),poll()和remove()需要O(logn)時間。
offer()和add()是Queue接口的方法,由PriorityQueue實現。這些被用于隊列中的元素插入。它們的表現與PriorityQueue相同,兩者沒有區別。
PriorityQueue示例
以下示例說明了我們如何使用JavaPriorityQueue集合。
PriorityQueueExample.java
VowelComparator.java
此比較器類用于確定上述PriorityQueue的排序順序。
PriorityQueue示例輸出
fig
lemon
orange
watermelon
以上就是動力節點java培訓機構的小編針對“Java基礎學習:java優先級隊列”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習