java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractQueue<E>
- 类型参数:
-
E
- 此队列中保存的元素的类型
- 所有实现的接口:
-
Iterable<E>
,Collection<E>
,Queue<E>
- 直接已知的子类:
-
ArrayBlockingQueue
,ConcurrentLinkedQueue
,DelayQueue
,LinkedBlockingDeque
,LinkedBlockingQueue
,LinkedTransferQueue
,PriorityBlockingQueue
,PriorityQueue
,SynchronousQueue
此类提供了一些
Queue
操作的骨架实现。此类中的实现适用于基本实现不允许 null
元素的情况。方法 add
、remove
和 element
基于 offer
、poll
和 peek
,但是抛出异常而不是通过 false
或 null
返回来指示失败。
扩展此类的 Queue
实现必须至少定义一个不允许插入 null
元素的方法 Queue.offer(E)
,以及方法 Queue.peek()
、Queue.poll()
、Collection.size()
和 Collection.iterator()
。通常还会覆盖其他方法。如果无法满足这些要求,请考虑继承 AbstractCollection
。
此类是 Java 集合框架 的成员。
- 自 JDK 版本:
- 1.5
-
Constructor Summary
-
Method Summary
Methods declared in class java.util.AbstractCollection
contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, toArray, toArray, toString
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods declared in interface java.util.Collection
contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray, toArray
-
Constructor Details
-
AbstractQueue
protected AbstractQueue()供子类使用的构造函数。
-
-
Method Details
-
add
如果可以立即在不违反容量限制的情况下将指定的元素插入此队列,则将其插入此队列,成功时返回true
,如果当前没有可用空间则抛出IllegalStateException
。此实现在
offer
成功时返回true
,否则抛出IllegalStateException
。- 指定者:
-
add
在接口Collection<E>
中 - 指定者:
-
add
在接口Queue<E>
中 - 覆盖:
-
add
在类AbstractCollection<E>
中 - 参数:
-
e
- 要添加的元素 - 返回:
-
true
(如Collection.add(E)
中指定的) - 抛出:
-
IllegalStateException
- 如果由于容量限制而当前无法添加元素 -
ClassCastException
- 如果指定元素的类别阻止将其添加到此队列 -
NullPointerException
- 如果指定元素为 null 且此队列不允许 null 元素 -
IllegalArgumentException
- 如果指定元素的某些属性阻止将其添加到此队列
-
remove
检索并移除此队列的头部。此方法与poll
的区别仅在于如果此队列为空则抛出异常。此实现返回
poll
的结果,除非队列为空。- 指定者:
-
remove
在接口Queue<E>
中 - 返回:
- 此队列的头部
- 抛出:
-
NoSuchElementException
- 如果此队列为空
-
element
检索但不移除此队列的头部。此方法与peek
的区别仅在于如果此队列为空则抛出异常。此实现返回
peek
的结果,除非队列为空。- 指定者:
-
element
在接口Queue<E>
中 - 返回:
- 此队列的头部
- 抛出:
-
NoSuchElementException
- 如果此队列为空
-
clear
public void clear()从此队列中移除所有元素。此调用返回后,队列将为空。此实现重复调用
poll
,直到返回null
。- 指定者:
-
clear
在接口Collection<E>
中 - 覆盖:
-
clear
在类AbstractCollection<E>
中
-
addAll
将指定集合中的所有元素添加到此队列中。尝试将队列的所有元素添加到自身会导致IllegalArgumentException
。此操作的行为在进行操作时修改了指定集合时是未定义的。此实现遍历指定集合,并将迭代器返回的每个元素依次添加到此队列。尝试添加元素时遇到运行时异常(特别是
null
元素)可能会导致在抛出相关异常时只有一些元素已成功添加。- 指定者:
-
addAll
在接口Collection<E>
中 - 覆盖:
-
addAll
在类AbstractCollection<E>
中 - 参数:
-
c
- 包含要添加到此队列中的元素的集合 - 返回:
-
true
如果此调用导致队列发生更改 - 抛出:
-
ClassCastException
- 如果指定集合的元素的类别阻止将其添加到此队列 -
NullPointerException
- 如果指定集合包含 null 元素且此队列不允许 null 元素,或者指定集合为 null -
IllegalArgumentException
- 如果指定集合的某些属性阻止将其添加到此队列,或者指定集合为此队列 -
IllegalStateException
- 如果由于插入限制而当前无法添加所有元素 - 参见:
-