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