這玩意兒叫優先級隊列,是一個類,繼承了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
來看看有哪些方法
無意中發現了一位清華大佬的算法刷題筆記,需要的加公眾號 勾玉技術 回復 清華算法 獲取。