PriorityQueue(優先隊列),一個基於優先級堆的無界優先級隊列。
實際上是一個堆(不指定Comparator時默認為最小堆),通過傳入自定義的Comparator函數可以實現大頂堆。
PriorityQueue<Integer> minHeap = new PriorityQueue<Integer>(); //小頂堆,默認容量為11 PriorityQueue<Integer> maxHeap = new PriorityQueue<Integer>(11,new Comparator<Integer>(){ //大頂堆,容量11 @Override public int compare(Integer i1,Integer i2){ return i2-i1; } });
PriorityQueue的常用方法有:poll(),offer(Object),size(),peek()等。
- 插入方法(offer()、poll()、remove() 、add() 方法)時間復雜度為O(log(n)) ;
- remove(Object) 和 contains(Object) 時間復雜度為O(n);
- 檢索方法(peek、element 和 size)時間復雜度為常量。
PriorityQueue的API文檔說明:
構造方法摘要 | |
---|---|
PriorityQueue() 使用默認的初始容量(11)創建一個 PriorityQueue ,並根據其自然順序對元素進行排序。 |
|
PriorityQueue(Collection<? extends E> c) 創建包含指定 collection 中元素的 PriorityQueue 。 |
|
PriorityQueue(int initialCapacity) 使用指定的初始容量創建一個 PriorityQueue ,並根據其自然順序對元素進行排序。 |
|
PriorityQueue(int initialCapacity, Comparator<? super E> comparator) 使用指定的初始容量創建一個 PriorityQueue ,並根據指定的比較器對元素進行排序。 |
|
PriorityQueue(PriorityQueue<? extends E> c) 創建包含指定優先級隊列元素的 PriorityQueue 。 |
|
PriorityQueue(SortedSet<? extends E> c) 創建包含指定有序 set 元素的 PriorityQueue 。 |
方法摘要 | ||
---|---|---|
boolean |
add(E e) 將指定的元素插入此優先級隊列。 |
|
void |
clear() 從此優先級隊列中移除所有元素。 |
|
Comparator<? super E> |
comparator() 返回用來對此隊列中的元素進行排序的比較器;如果此隊列根據其元素的自然順序進行排序,則返回 null 。 |
|
boolean |
contains(Object o) 如果此隊列包含指定的元素,則返回 true 。 |
|
Iterator<E> |
iterator() 返回在此隊列中的元素上進行迭代的迭代器。 |
|
boolean |
offer(E e) 將指定的元素插入此優先級隊列。 |
|
E |
peek() 獲取但不移除此隊列的頭;如果此隊列為空,則返回 null。 |
|
E |
poll() 獲取並移除此隊列的頭,如果此隊列為空,則返回 null。 |
|
boolean |
remove(Object o) 從此隊列中移除指定元素的單個實例(如果存在)。 |
|
int |
size() 返回此 collection 中的元素數。 |
|
Object[] |
toArray() 返回一個包含此隊列所有元素的數組。 |
|
|
toArray(T[] a) 返回一個包含此隊列所有元素的數組;返回數組的運行時類型是指定數組的類型。 |
從類 java.util.AbstractQueue 繼承的方法 |
---|
addAll, element, remove |
從類 java.util.AbstractCollection 繼承的方法 |
---|
containsAll, isEmpty, removeAll, retainAll, toString |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
從接口 java.util.Collection 繼承的方法 |
---|
containsAll, equals, hashCode, isEmpty, removeAll, retainAll |