JavaTM 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 Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策