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() |
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 。 |