- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractQueue<E>
-
- 参数类型
-
E
- 保存在此队列中的元素的类型
- All Implemented Interfaces:
-
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
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
AbstractQueue()
子类使用的构造方法。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 boolean
add(E e)
将指定的元素插入此队列中,如果它是立即可行且不会违反容量限制,返回true
在成功和抛出IllegalStateException
,如果当前没有空间可用。boolean
addAll(Collection<? extends E> c)
将指定集合中的所有元素添加到此队列中。void
clear()
从此队列中删除所有元素。E
element()
检索,但不删除,这个队列的头。E
remove()
检索并删除此队列的头。-
Methods inherited from class java.util.AbstractCollection
contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray, toString
-
Methods inherited from interface java.util.Collection
contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray
-
-
-
-
方法详细信息
-
add
public boolean add(E e)
将指定的元素插入到此队列中,如果可以立即执行此操作而不违反容量限制,true
成功返回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
- 如果指定的元素为空,并且此队列不允许空元素 -
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
- 如果指定的集合包含空元素,并且此队列不允许空元素,或者如果指定的集合为空 -
IllegalArgumentException
- 如果指定集合的元素的某些属性阻止将其添加到此队列中,或者指定的集合是此队列 -
IllegalStateException
- 如果不是所有的元素都可以由于插入限制在这个时候被添加 - 另请参见:
-
add(Object)
-
-