- 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
public abstract class AbstractQueue<E> extends AbstractCollection<E> implements Queue<E>
此类提供了一些Queue操作的骨干实现。 当基实现不允许在这个类的实现方式是合适null元件。 方法add,remove和element是基于offer,poll,和peek,分别,但抛出异常而不是通过指示故障false或null回报。甲
Queue扩展此类实现必须最低限度地限定的方法Queue.offer(E),它不允许插入null元素,用方法一起Queue.peek(),Queue.poll(),Collection.size(),和Collection.iterator()。 通常,还会覆盖其他方法。 如果无法满足这些要求,请考虑继承子类AbstractCollection。此课程是Java Collections Framework的成员。
- 从以下版本开始:
- 1.5
-
-
构造方法摘要
构造方法 变量 构造器 描述 protectedAbstractQueue()子类使用的构造方法。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 booleanadd(E e)如果可以在不违反容量限制的情况下立即执行此操作,则将指定的元素插入此队列,成功时返回true,如果当前没有可用空间,则抛出IllegalStateException。booleanaddAll(Collection<? extends E> c)将指定集合中的所有元素添加到此队列。voidclear()从此队列中删除所有元素。Eelement()检索但不删除此队列的头部。Eremove()检索并删除此队列的头部。-
声明方法的类 java.util.AbstractCollection
contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, toArray, toArray, toString
-
声明方法的类 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
声明方法的接口 java.util.Collection
contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray, toArray
-
-
-
-
方法详细信息
-
add
public boolean add(E e)
如果可以在不违反容量限制的情况下立即执行此操作,则将指定的元素插入此队列,成功时返回true,如果当前没有可用空间,则抛出IllegalStateException。如果
offer成功,此实现返回true,否则抛出IllegalStateException。- Specified by:
-
add在界面Collection<E> - Specified by:
-
add在界面Queue<E> - 重写:
-
add在课堂AbstractCollection<E> - 参数
-
e- 要添加的元素 - 结果
-
true(由Collection.add(E)指定) - 异常
-
IllegalStateException- 如果由于容量限制,此时无法添加元素 -
ClassCastException- 如果指定元素的类阻止将其添加到此队列 -
NullPointerException- 如果指定的元素为null且此队列不允许null元素 -
IllegalArgumentException- 如果此元素的某些属性阻止将其添加到此队列
-
remove
public E remove()
- Specified by:
-
remove在界面Queue<E> - 结果
- 这个队列的头
- 异常
-
NoSuchElementException- 如果此队列为空
-
element
public E element()
- Specified by:
-
element在界面Queue<E> - 结果
- 这个队列的头
- 异常
-
NoSuchElementException- 如果此队列为空
-
clear
public void clear()
- Specified by:
-
clear在界面Collection<E> - 重写:
-
clear在课程AbstractCollection<E>
-
addAll
public boolean addAll(Collection<? extends E> c)
将指定集合中的所有元素添加到此队列。 尝试将所有队列添加到自身会导致IllegalArgumentException。 此外,如果在操作正在进行时修改了指定的集合,则此操作的行为是不确定的。此实现迭代指定的集合,并依次将迭代器返回的每个元素添加到此队列。 尝试添加元素时遇到的运行时异常(特别是包括
null元素)可能导致在抛出关联异常时仅成功添加了一些元素。- Specified by:
-
addAll在界面Collection<E> - 重写:
-
addAll在类AbstractCollection<E> - 参数
-
c- 包含要添加到此队列的元素的集合 - 结果
-
true如果此队列因调用而更改 - 异常
-
ClassCastException- 如果指定集合的元素的类阻止将其添加到此队列 -
NullPointerException- 如果指定的集合包含null元素,并且此队列不允许null元素,或者指定的集合为null -
IllegalArgumentException- 如果指定集合的某个元素的某些属性阻止将其添加到此队列,或者指定的集合是此队列 -
IllegalStateException- 如果不是因为插入限制,此时可以添加所有元素 - 另请参见:
-
add(Object)
-
-