20220210 java.util.Queue

java.util.Queue

基本信息

  • public interface Queue<E> extends Collection<E>
  • rt.jar
  • 引入版本:1.5

使用说明

  • java.util.Collection 的子接口,Java 集合框架的一员
  • 除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(nullfalse,具体取决于操作)。
抛出异常 返回特殊值
插入 add(e) offer(e)
移除 remove() poll()
检查 element() peek()
  • 队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素。
  • 插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的;在大多数实现中,插入操作不会失败。offer 方法设计用于正常的失败情况,而不是出现异常的情况,例如在容量固定(有界)的队列中。
  • remove()poll() 方法可移除和返回队列的头。到底从队列中移除哪个元素是队列排序策略的功能,而该策略在各种实现中是不同的。remove()poll() 方法仅在队列为空时其行为有所不同:remove() 方法抛出一个异常,而 poll() 方法则返回 null
  • element()peek() 返回,但不移除,队列的头。
  • Queue 接口并未定义 阻塞队列的方法,而这在并发编程中是很常见的。BlockingQueue 接口定义了那些等待元素出现或等待队列中有可用空间的方法,这些方法扩展了此接口。
  • Queue 实现通常不允许插入 null 元素,尽管某些实现(如 LinkedList)并不禁止插入 null。即使在允许 null 的实现中,也不应该将 null 插入到 Queue 中,因为 null 也用作 poll 方法的一个特殊返回值,表明队列不包含元素。

继承关系

20220210 java.util.Queue

接口定义方法

接口定义方法
boolean add(E e);
将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回 true,如果当前没有可用的空间,则抛出 IllegalStateException
boolean offer(E e);
将指定的元素插入此队列(如果立即可行且不会违反容量限制),当使用有容量限制的队列时,此方法通常要优于 add(E),后者可能无法插入元素,而只是抛出一个异常。
如果该元素已添加到此队列,则返回 true;否则返回 false
E remove();
获取并移除此队列的头。
E poll();
获取并移除此队列的头,如果此队列为空,则返回 null
E element();
获取,但是不移除此队列的头。
E peek();
获取但不移除此队列的头;如果此队列为空,则返回 null
上一篇:ExecutorCompletionService用法简介


下一篇:20220210 java.util.concurrent.BlockingQueue