JavaTM 2 Platform
Standard Ed. 6

java.util
類別 AbstractQueue<E>

java.lang.Object
  繼承者 java.util.AbstractCollection<E>
      繼承者 java.util.AbstractQueue<E>
型別參數:
E - 此 collection 中所保存元素的型別
所有已實作的介面:
Iterable<E>, Collection<E>, Queue<E>
直接已知子類別:
ArrayBlockingQueue, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, PriorityBlockingQueue, PriorityQueue, SynchronousQueue

public abstract class AbstractQueue<E>
extends AbstractCollection<E>
implements Queue<E>

此類別提供某些 Queue 操作的骨幹實作。此類別中的實作適用於基本實作 允許包含 null 元素時。addremoveelement 方法分別基於 offerpollpeek 方法,但是它們通過拋出異常而不是返回 falsenull 來指示失敗。

擴展此類別的 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 e)
          將指定的元素插入到此佇列中(如果立即可行且不會違反容量限制),在成功時返回 true,如果當前沒有可用空間,則拋出 IllegalStateException
 boolean addAll(Collection<? extends E> c)
          將指定 collection 中的所有元素都添加到此佇列中。
 void clear()
          移除此佇列中的所有元素。
 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 e)
將指定的元素插入到此佇列中(如果立即可行且不會違反容量限制),在成功時返回 true,如果當前沒有可用空間,則拋出 IllegalStateException

如果 offer 成功,則此實作返回 true,否則拋出 IllegalStateException

指定者:
介面 Collection<E> 中的 add
指定者:
介面 Queue<E> 中的 add
覆寫:
類別 AbstractCollection<E> 中的 add
參數:
e - 要添加的元素
返回:
true(根據 Collection.add(E) 的規定)
拋出:
IllegalStateException - 如果此時由於容量限制不能添加元素
ClassCastException - 如果指定元素的類別不允許將該元素添加到此佇列中
NullPointerException - 如果指定元素為 null 並且此佇列不允許 null 元素
IllegalArgumentException - 如果此元素的某些屬性不允許將該元素添加到此佇列中

remove

public E remove()
獲取並移除此佇列的頭。此方法與 poll 唯一的不同在於:此佇列為空時將拋出一個異常。

除非佇列為空,否則此實作返回 poll 的結果。

指定者:
介面 Queue<E> 中的 remove
返回:
此佇列的頭
拋出:
NoSuchElementException - 如果此佇列為空

element

public E element()
獲取但不移除此佇列的頭。此方法與 peek 唯一的不同在於:此佇列為空時將拋出一個異常。

除非佇列為空,否則此實作返回 peek 的結果。

指定者:
介面 Queue<E> 中的 element
返回:
此佇列的頭
拋出:
NoSuchElementException - 如果此佇列為空

clear

public void clear()
移除此佇列中的所有元素。此調用返回後,佇列將為空。

此實作重複調用 poll,直到它返回 null 為止。

指定者:
介面 Collection<E> 中的 clear
覆寫:
類別 AbstractCollection<E> 中的 clear

addAll

public boolean addAll(Collection<? extends E> c)
將指定 collection 中的所有元素都添加到此佇列中。如果試圖將某一佇列 addAll 到該佇列本身中,則會導致 IllegalArgumentException。此外,如果正在進行此操作時修改指定的 collection,則此操作的行為是不確定的。

此實作在指定的 collection 上進行迭代,並依次將迭代器返回的每一個元素添加到此佇列中。在試圖添加某一元素(尤其是 null 元素)時如果遇到了運行時異常,則可能導致在拋出相關異常時只成功地添加了某些元素。

指定者:
介面 Collection<E> 中的 addAll
覆寫:
類別 AbstractCollection<E> 中的 addAll
參數:
c - 套件含要添加到此佇列的元素的 collection
返回:
如果此佇列由於調用而發生更改,則返回 true
拋出:
ClassCastException - 如果指定 collection 元素的類別不允許將該元素添加到此佇列中
NullPointerException - 如果指定 collection 套件含一個 null 元素並且此佇列不允許 null 元素,或者指定 collection 為 null
IllegalArgumentException - 如果指定 collection 元素的某些屬性不允許將該元素添加到此佇列中,或者指定 collection 是此佇列
IllegalStateException - 如果此時由於插入限制無法添加所有元素
另請參見:
add(Object)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only