基本介紹
- 外文名:AbstractQueue
- 從屬:Java Collections Framework
- 類別:優先權佇列
- 限制:不允許 null 元素
簡介,構造方法摘要,構造方法詳細信息,疊代,
簡介
類 AbstractQueue<E>
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractQueue<E>
類型參數:
E - 此 collection 中所保存元素的類型
所有已實現的接口:
Iterable<E>, Collection<E>, Queue<E>
直接已知子類:
ArrayBlockingQueue, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingQueue, PriorityBlockingQueue, PriorityQueue, SynchronousQueue
--------------------------------------------------------------------------------
public abstract class AbstractQueue<E>extends AbstractCollection<E>implements Queue<E>此類提供某些 Queue 操作的骨幹實現。此類中的實現適用於基本實現不 允許包含 null 元素時。add、remove 和 element 方法分別基於 offer、poll 和 peek 方法,但是它們通過拋出異常而不是返回 false 或 null 來指示失敗。
擴展此類的 Queue 實現至少必須定義一個不允許插入 null 元素的 Queue.offer(E) 方法,該方法以及 Queue.peek()、Queue.poll()、Collection.size() 和 Collection.iterator() 都支持 Iterator.remove() 方法。通常還要重寫其他方法。如果無法滿足這些要求,那么可以轉而考慮為 AbstractCollection 創建子類。
此類是 Java Collections Framework 的成員。
從以下版本開始:
1.5
--------------------------------------------------------------------------------
構造方法摘要
protected AbstractQueue()
子類使用的構造方法。
方法摘要
boolean add(E o)
將指定的元素添加到此佇列中。
boolean addAll(Collection<? extends E> c)
將指定 collection 中的所有元素都添加到此佇列中。
void clear()
移除此 collection 中的所有元素。
E element()
檢索但不移除此佇列的頭。
E remove()
檢索並移除此佇列的頭。
從類 java.util.AbstractCollection 繼承的方法
contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray, toString
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
從接口 java.util.Queue 繼承的方法
offer, peek, poll
從接口 java.util.Collection 繼承的方法
contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
構造方法詳細信息
AbstractQueue
protected AbstractQueue()子類使用的構造方法。
方法詳細信息
add
public boolean add(E o)將指定的元素添加到此佇列中。如果 offer 成功,則此實現返回 true,其他情況則拋出 IllegalStateException。
指定者:
接口 Collection<E> 中的 add
覆蓋:
類 AbstractCollection<E> 中的 add
參數:
o - 元素
返回:
true(按照 Collection.add 的常規協定)。
拋出:
NullPointerException - 如果指定的元素為 null
IllegalStateException - 如果無法添加元素
--------------------------------------------------------------------------------
remove
public E remove()檢索並移除此佇列的頭。除非佇列為空,否則此實現返回 poll 的結果。
指定者:
接口 Queue<E> 中的 remove
返回:
此佇列的頭。
拋出:
NoSuchElementException - 如果此佇列為空。
--------------------------------------------------------------------------------
element
public E element()檢索但不移除此佇列的頭。除非佇列為空,否則此實現返回 peek 的結果。
指定者:
接口 Queue<E> 中的 element
返回:
此佇列的頭。
拋出:
NoSuchElementException - 如果此佇列為空。
--------------------------------------------------------------------------------
clear
public void clear()移除此 collection 中的所有元素。此調用返回後,collection 將為空。
此實現重複調用 poll,直到它返回 null 為止。
指定者:
接口 Collection<E> 中的 clear
覆蓋:
類 AbstractCollection<E> 中的 clear
--------------------------------------------------------------------------------
addAll
public boolean addAll(Collection<? extends E> c)將指定 collection 中的所有元素都添加到此佇列中。如果試圖將某一佇列 addAll 到該佇列本身中,則會導致 IllegalArgumentException。此外,如果正在進行此操作時修改指定的 collection,則此操作的行為是不明確的。
PriorityQueue() 使用默認的初始容量(11)創建一個 PriorityQueue,並根據其自然順序來排序其元素(使用 Comparable)。 |
PriorityQueue(Collection<? extends E> c) 創建包含指定集合中元素的 PriorityQueue。 |
PriorityQueue(int initialCapacity) 使用指定的初始容量創建一個 PriorityQueue,並根據其自然順序來排序其元素(使用 Comparable)。 |
PriorityQueue(int initialCapacity, Comparator<? super E> comparator) 使用指定的初始容量創建一個 PriorityQueue,並根據指定的比較器來排序其元素。 |
PriorityQueue(PriorityQueue<? extends E> c) 創建包含指定集合中元素的 PriorityQueue。 |
PriorityQueue(SortedSet<? extends E> c) 創建包含指定集合中元素的 PriorityQueue。 |
疊代
此實現在指定的 collection 上進行疊代,並依次將疊代器返回的每一個元素添加到此 collection 中。在試圖添加某一元素(尤其是 null 元素)時如果遇到了運行時異常,則可能導致在拋出相關異常時只成功地添加了某些元素。
指定者:
接口 Collection<E> 中的 addAll
覆蓋:
類 AbstractCollection<E> 中的 addAll
參數:
c - 其元素將被添加到此 collection 中的 collection。
返回:
如果此 collection 由於此方法的調用而發生改變,則返回 true。
拋出:
NullPointerException - 如果指定的 collection 或其所有元素均為 null。
IllegalArgumentException - 如果 c 是此佇列。
另請參見:
add(Object)