E
-元素举行此集合中的类型
public interface Queue<E> extends Collection<E>
Collection
队列操作,提供额外的插入、提取、检验操作。这些方法都存在两种形式:一个抛出一个异常,如果操作失败,其他返回一个特殊的价值(无论是
null
或
false
,根据操作)。插入操作的后一种形式是专为使用有容量限制
Queue
实现;在大多数实现中,插入操作不会失败。
Throws exception | Returns special value | |
Insert | add(e) |
offer(e) |
Remove | remove() |
poll() |
Examine | element() |
peek() |
队列通常,但不一定,在一个先进先出的顺序元素(先进先出)的方式。其中例外的是优先队列的顺序元素根据提供的比较器,或元素的自然顺序,和后进先出队列(或堆)的阶元LIFO(后进先出)。无论订购使用,队列的头元素将被调用的remove()
或poll()
删除。在一个FIFO队列,所有新的元素插入到队列的尾部。其他类型的队列可以使用不同的放置规则。每一Queue
实施必须指定排序性能。
offer
插入一个元素的方法,如果可能的话,否则返回false
。这不同于Collection.add
方法,可不只有抛出unchecked异常添加元素。的offer
方法设计时使用的失败是正常的,而不是特殊的情况,例如,固定容量(或“有界”)队列。
的remove()
和poll()
方法移除并返回队列的头部。从队列中删除的是队列的排序策略的函数,它不同于从“实现”到“实现”的功能。的remove()
和poll()
方法只是他们的行为当队列为空的不同的remove()
方法抛出一个异常,而poll()
方法返回null
。
返回的element()
和peek()
方法但不删除队列的头部。
的Queue
接口没有定义阻塞队列的方法,这是常见的并发编程。这些方法,即等元素的出现或空间变得可用,在BlockingQueue
接口定义,扩展接口。
Queue
实现一般不允许null
元素插入,虽然有些实现,如LinkedList
,不禁止插入null
。即使在允许它实现,null
不能插入一个Queue
,作为null
也被用来作为一种特殊的返回值的方法poll
指出队列中没有元素。
Queue
实现一般不但是继承的基于身份的版本从类Object
元基于版本的方法equals
和hashCode
定义,因为基于平等并不总是明确的同一元素的不同性质而有序队列元素。
该接口的 Java Collections Framework成员。
Collection
,
LinkedList
,
PriorityQueue
,
LinkedBlockingQueue
,
BlockingQueue
,
ArrayBlockingQueue
,
LinkedBlockingQueue
,
PriorityBlockingQueue
Modifier and Type | Method and Description |
---|---|
boolean |
add(E e)
插入指定元素为该队列是否有可能立即这样做不违反容量限制,还
true 成功后抛出
IllegalStateException 如果没有空间是可用的。
|
E |
element()
检索,但不删除此队列的头。
|
boolean |
offer(E e)
如果可能立即在不违反容量限制的情况下这样做的话,将指定的元素插入到队列中。
|
E |
peek()
检索,但不删除,这个队列头,或返回
null 如果队列为空。
|
E |
poll()
检索并移除此队列的头,或返回
null 如果队列为空。
|
E |
remove()
检索和删除此队列的头。
|
addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray
boolean add(E e)
true
成功后抛出
IllegalStateException
如果没有空间是可用的。
add
接口
Collection<E>
e
-元素添加
true
(由
Collection.add(E)
指定)
IllegalStateException
-如果元素不能被添加在这个时候由于产能限制
ClassCastException
-如果指定元素类型阻止其加入队列
NullPointerException
-如果指定元素为null,这队列不允许null元素
IllegalArgumentException
-如果该元素的一些特性阻止其加入队列
boolean offer(E e)
add(E)
,可不能只通过抛出异常,插入一个元素。
e
-元素添加
true
如果元素被添加到这个队列,否则
false
ClassCastException
-如果指定元素类型阻止其加入队列
NullPointerException
-如果指定元素为null,这队列不允许null元素
IllegalArgumentException
-如果该元素的一些特性阻止其加入队列
E remove()
poll
仅在于它抛出一个异常,如果队列为空。
NoSuchElementException
如果队列为空
E poll()
null
如果队列为空。
null
如果队列为空
E element()
peek
仅在于它抛出一个异常,如果队列为空。
NoSuchElementException
如果队列为空
E peek()
null
如果队列为空。
null
如果队列为空
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.