PriorityQueue使用介紹


這玩意兒叫優先級隊列,是一個類,繼承了AbstractQueue類,實現了Serializable接口。
jdk文檔里是這么描述這玩意的:

基於優先級堆的無限優先級queue 。 優先級隊列的元素根據它們的有序natural ordering ,或由一個Comparator在隊列構造的時候提供,這取決於所使用的構造方法。 優先隊列不允許null元素。 依靠自然排序的優先級隊列也不允許插入不可比較的對象(這樣做可能導致ClassCastException )。
該隊列的頭部是相對於指定順序的最小元素。 如果多個元素被綁定到最小值,那么頭就是這些元素之一 - 關系被任意破壞。 隊列檢索操作poll , remove , peek和element訪問在隊列的頭部的元件。

優先級隊列是無限制的,但是具有管理用於在隊列上存儲元素的數組的大小的內部容量 。 它始終至少與隊列大小一樣大。 當元素被添加到優先級隊列中時,其容量會自動增長。 沒有規定增長政策的細節。

該類及其迭代器實現Collection和Iterator接口的所有可選方法。 方法iterator()中提供的迭代器不能保證以任何特定順序遍歷優先級隊列的元素。 如果需要有序遍歷,請考慮使用Arrays.sort(pq.toArray()) 。

請注意,此實現不同步。 如果任何線程修改隊列,多線程不應同時訪問PriorityQueue實例。 而是使用線程安全的PriorityBlockingQueue類。

實現注意事項:此實現提供了O(日志(n))的時間入隊和出隊方法( offer , poll , remove()和add ); remove(Object)和contains(Object)方法的線性時間; 和恆定時間檢索方法( peek , element和size )。

這個班是Java Collections Framework的會員 。

從以下版本開始:
1.5

來看看有哪些方法


無意中發現了一位清華大佬的算法刷題筆記,需要的加公眾號 勾玉技術 回復 清華算法 獲取。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM