模块 java.base
 java.util

类 AbstractQueue<E>

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 操作的骨架实现。当基本实现允许 not 允许 null 元素时,此类中的实现是合适的。方法 add remove element 分别基于 offer poll peek ,但抛出异常而不是通过 falsenull 返回指示失败。

扩展此类的 Queue 实现必须至少定义一个不允许插入 null 元素的方法 Queue.offer(E) ,以及方法 Queue.peek() Queue.poll() Collection.size() Collection.iterator() 。通常,其他方法也会被覆盖。如果无法满足这些要求,请考虑子类化 AbstractCollection

此类是 Java 集合框架 的成员。

自从:
1.5
  • 构造方法详细信息

    • AbstractQueue

      protected AbstractQueue()
      供子类使用的构造方法。
  • 方法详情

    • add

      public boolean add(E  e)
      如果可以在不违反容量限制的情况下立即将指定的元素插入此队列,则在成功时返回 true 并在当前没有可用空间时抛出 IllegalStateException

      如果 offer 成功,此实现返回 true,否则抛出 IllegalStateException

      指定者:
      add 在接口 Collection<E>
      指定者:
      add 在接口 Queue<E>
      重写:
      add 在类 AbstractCollection<E>
      参数:
      e - 要添加的元素
      返回:
      true(由 Collection.add(E) 指定)
      抛出:
      IllegalStateException - 如果由于容量限制此时无法添加元素
      ClassCastException - 如果指定元素的类阻止它被添加到这个队列
      NullPointerException - 如果指定元素为空且此队列不允许空元素
      IllegalArgumentException - 如果此元素的某些属性阻止将其添加到此队列
    • remove

      public E  remove()
      检索并删除此队列的头部。此方法与 poll 的不同之处仅在于,如果此队列为空,它会抛出异常。

      此实现返回 poll 的结果,除非队列为空。

      指定者:
      remove 在接口 Queue<E>
      返回:
      这个队列的头
      抛出:
      NoSuchElementException - 如果这个队列是空的
    • element

      public E  element()
      检索但不删除此队列的头部。此方法与 peek 的不同之处仅在于,如果此队列为空,它会抛出异常。

      此实现返回 peek 的结果,除非队列为空。

      指定者:
      element 在接口 Queue<E>
      返回:
      这个队列的头
      抛出:
      NoSuchElementException - 如果这个队列是空的
    • clear

      public void clear()
      从此队列中删除所有元素。此调用返回后队列将为空。

      此实现重复调用 poll 直到它返回 null

      指定者:
      clear 在接口 Collection<E>
      重写:
      clear 在类 AbstractCollection<E>
    • addAll

      public boolean addAll(Collection <? extends E > c)
      将指定集合中的所有元素添加到此队列。尝试将队列的 addAll 添加到自身会导致 IllegalArgumentException 。此外,如果指定的集合在操作过程中被修改,则此操作的行为是未定义的。

      此实现迭代指定的集合,并将迭代器返回的每个元素依次添加到此队列中。尝试添加元素(尤其包括 null 元素)时遇到运行时异常可能会导致在抛出相关异常时仅成功添加了部分元素。

      指定者:
      addAll 在接口 Collection<E>
      重写:
      addAll 在类 AbstractCollection<E>
      参数:
      c - 包含要添加到此队列的元素的集合
      返回:
      true 如果此队列因调用而更改
      抛出:
      ClassCastException - 如果指定集合的元素的类阻止将其添加到此队列
      NullPointerException - 如果指定的集合包含空元素并且此队列不允许空元素,或者如果指定的集合为空
      IllegalArgumentException - 如果指定集合的某个元素的某些属性阻止它添加到此队列,或者如果指定集合是此队列
      IllegalStateException - 如果由于插入限制此时不能添加所有元素
      参见: