java queue

java queue是java.util接口 Queue<E>。

java中的queue類是佇列數據結構管理類。在它裡邊的元素可以按照添加它們的相同順序被移除。

基本介紹

  • 中文名:java queue
  • 類型參數:E- 集合中所保存元素的類型
  • 所有超級接口Collection
  • 子接口:BlockingQueue
java.util接口 Queue&lt;E&gt;,offer,poll,remove,peek,element,
queue即佇列。

java.util接口 Queue<E>

  • 類型參數:
  • E- 集合中所保存元素的類型。
  • 所有已知子接口:
  • BlockingQueue<E>
  • 所有已知實現類:
  • AbstractQueue,ArrayBlockingQueue,ArrayDeque,ConcurrentLinkedQueue,DelayQueue,LinkedBlockingQueue,LinkedList,PriorityBlockingQueue,PriorityQueue,SynchronousQueue
在處理元素前用於保存元素的集合。除了基本的Collection操作外,佇列還提供其他的插入、提取和檢查操作。
佇列通常(但並非一定)以 FIFO(先進先出)的方式排序各個元素。不過優先權佇列和 LIFO 佇列(或堆疊)例外,前者根據提供的比較器或元素的自然順序對元素進行排序,後者按 LIFO(後進先出)的方式對元素進行排序。無論使用哪種排序方式,佇列的都是調用remove()或poll()所移除的元素。在 FIFO 佇列中,所有的新元素都插入佇列的末尾。其他種類的佇列可能使用不同的元素放置規則。每個Queue實現必須指定其順序屬性。
如果可能,offer方法可插入一個元素,否則返回false。這與Collection.add方法不同,該方法只能通過拋出未經檢查的異常使添加元素失敗。offer方法設計用於正常的失敗情況,而不是出現異常的情況,例如在容量固定(有界)的佇列中。
remove()和poll()方法可移除和返回佇列的頭。到底從佇列中移除哪個元素是佇列排序策略的功能,而該策略在各種實現中是不同的。remove()和poll()方法僅在佇列為空時其行為有所不同:remove()方法拋出一個異常,而poll()方法則返回null。
element()和peek()返回,但不移除,佇列的頭。
Queue接口並未定義阻塞佇列的方法,而這在並發編程中是很常見的。BlockingQueue接口定義了那些等待元素出現或等待佇列中有可用空間的方法,這些方法擴展了此接口。
Queue實現通常不允許插入null元素,儘管某些實現(如LinkedList)並不禁止插入null。即使在允許 null 的實現中,也不應該將null插入到Queue中,因為null也用作poll方法的一個特殊返回值,表明佇列不包含元素。
Queue實現通常未定義equals和hashCode方法的基於元素的版本,而是從Object類繼承了基於身份的版本,因為對於具有相同元素但有不同排序屬性的佇列而言,基於元素的相等性並非總是定義良好的。
此接口是Java Collections Framework的成員。
  • 從以下版本開始:
  • 1.5
  • 另請參見:
  • Collection,LinkedList,PriorityQueue,LinkedBlockingQueue,BlockingQueue,ArrayBlockingQueue,LinkedBlockingQueue,PriorityBlockingQueue
方法摘要
element()
檢索,但是不移除此佇列的頭。
boolean
offer(E o)
如果可能,將指定的元素插入此佇列。
peek()
檢索,但是不移除此佇列的頭,如果此佇列為空,則返回null。
poll()
檢索並移除此佇列的頭,如果此佇列為空,則返回null。
remove()
檢索並移除此佇列的頭。
從接口 java.util.Collection繼承的方法
add,addAll,clear,contains,containsAll,equals,hashCode,isEmpty,iterator,remove,removeAll,retainAll,size,toArray,toArray
方法詳細信息

offer

booleanoffer(E o)
  • 如果可能,將指定的元素插入此佇列。使用可能有插入限制(例如容量限定)的佇列時,offer方法通常要優於Collection.add(E)方法,因為後者只能通過拋出異常使插入元素失敗。
  • 參數:
  • o- 要插入的元素。
  • 返回:
  • 如果可以向此佇列添加元素,則返回true;否則返回false。

poll

Epoll()
  • 檢索並移除此佇列的頭,如果此佇列為空,則返回null。
  • 返回:
  • 佇列的頭,如果此佇列為空,則返回null。

remove

Eremove()
  • 檢索並移除此佇列的頭。此方法與poll方法的不同在於,如果此佇列為空,它會拋出一個異常。
  • 返回:
  • 佇列的頭。
  • 拋出:
  • NoSuchElementException- 如果此佇列為空。

peek

Epeek()
  • 檢索,但是不移除此佇列的頭,如果此佇列為空,則返回null。
  • 返回:
  • 佇列的頭,如果此佇列為空,則返回null。

element

Eelement()
  • 檢索,但是不移除此佇列的頭。此方法與peek方法的惟一不同是,如果此佇列為空,它會拋出一個異常。
  • 返回:
  • 佇列的頭。
  • 拋出:
  • NoSuchElementException- 如果此佇列為空。

相關詞條

熱門詞條

聯絡我們