java中的AbstractQueue
一、概述
java.lang.Object java.util.AbstractCollection<E> java.util.AbstractQueue<E>
E
- 此 collection 中所保存元素的类型声明:public abstract class
AbstractQueue<E> extends
AbstractCollection<E> implements
Queue<E>Queue
操作的骨干实现。此类中的实现适用于基本实现不 允许包含 null 元素时。add
、remove
和
element
方法分别基于
offer
、poll
和
peek
方法,但是它们通过抛出异常而不是返回 false 或 null 来指示失败。 扩展此类的 Queue 实现至少必须定义一个不允许插入 null 元素的
Queue.offer(E)
方法,该方法以及 Queue.peek()
、Queue.poll()
、Collection.size()
和
Collection.iterator()
都支持
Iterator.remove()
方法。通常还要重写其他方法。如果无法满足这些要求,那么可以转而考虑为
AbstractCollection
创建子类。
此类是 Java Collections Framework 的成员。
protected AbstractQueue() 子类使用的构造方法。
三、方法详细
1、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
- 如果此元素的某些属性不允许将该元素添加到此队列中
- 获取并移除此队列的头。此方法与
poll
唯一的不同在于:此队列为空时将抛出一个异常。除非队列为空,否则此实现返回 poll 的结果。
- 返回:
- 此队列的头
- 抛出:
NoSuchElementException
- 如果此队列为空
peek
唯一的不同在于:此队列为空时将抛出一个异常。除非队列为空,否则此实现返回 peek 的结果。
- 返回:
- 此队列的头
- 抛出:
NoSuchElementException
- 如果此队列为空
poll
,直到它返回 null 为止。Collection<E>
中的 clear
AbstractCollection<E>
中的 clear
5、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 为 nullIllegalArgumentException
- 如果指定 collection 元素的某些属性不允许将该元素添加到此队列中,或者指定 collection 是此队列IllegalStateException
- 如果此时由于插入限制无法添加所有元素
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。