java queue

Collection Collection Collection

queue即佇列。

java.util接口 Queue<E>

  • 類型參數:
  • E- 集合中所保存元素的類型。
  • 所有已知子接口:
  • BlockingQueue<E>
  • 所有已知實現類:
  • AbstractQueue,ArrayBlockingQueue,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

方法摘要


E

element()
檢索,但是不移除此佇列的頭。

boolean

offer(E o)
如果可能,將指定的元素插入此佇列。

E

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

E

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

E

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- 如果此佇列為空。

            相關詞條

            熱門詞條

            聯絡我們