- 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
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
AbstractQueue()
子类使用的构造方法。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 boolean
add(E e)
如果可以在不违反容量限制的情况下立即执行此操作,则将指定的元素插入此队列,成功时返回true
,如果当前没有可用空间,则抛出IllegalStateException
。boolean
addAll(Collection<? extends E> c)
将指定集合中的所有元素添加到此队列。void
clear()
从此队列中删除所有元素。E
element()
检索但不删除此队列的头部。E
remove()
检索并删除此队列的头部。-
声明方法的类 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)
-
-