java.util.Queue
基本信息
public interface Queue<E> extends Collection<E>
rt.jar
- 引入版本:
1.5
使用说明
-
java.util.Collection
的子接口,Java 集合框架的一员 - 除了基本的
Collection
操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null
或false
,具体取决于操作)。
抛出异常 | 返回特殊值 | |
---|---|---|
插入 | 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
方法的一个特殊返回值,表明队列不包含元素。
继承关系
接口定义方法
接口定义方法 |
---|
boolean add(E e); 将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回 true ,如果当前没有可用的空间,则抛出 IllegalStateException 。 |
boolean offer(E e); 将指定的元素插入此队列(如果立即可行且不会违反容量限制),当使用有容量限制的队列时,此方法通常要优于 add(E) ,后者可能无法插入元素,而只是抛出一个异常。如果该元素已添加到此队列,则返回 true ;否则返回 false
|
E remove(); 获取并移除此队列的头。 |
E poll(); 获取并移除此队列的头,如果此队列为空,则返回 null 。 |
E element(); 获取,但是不移除此队列的头。 |
E peek(); 获取但不移除此队列的头;如果此队列为空,则返回 null 。 |