Java 中隊列的使用

來源:互聯網
上載者:User

標籤:

剛才看見群裡的一個朋友在問隊列的使用,確實在現實的寫代碼中非常少使用隊列的,反正我是從來沒使用過。僅僅是學資料結構的時候學過。

以下是我寫的一個小範例,希望有不足之處請提出改正。O(∩_∩)O~

看代碼:

import java.util.LinkedList;import java.util.Queue;public class TestQueue{/** * @param args * @author JavaAlpha * Info 測試隊列 */public static void main(String[] args){Queue<String> queue = new LinkedList<String>();queue.offer("1");//插入一個元素queue.offer("2");queue.offer("3");//列印元素個數System.out.println("queue.size()"+queue.size());//遍曆列印全部的元素,安裝插入是順序列印for (String string : queue){System.out.println(string);}}}列印內容:queue.size()3123

 

以下是API中對隊列的說明:

 

public interface Queue<E>
   
extends Collection<E>

在處理元素前用於儲存元素的 collection。除了主要的 Collection 操作外,隊列還提供其它的插入、提取和檢查操作。每一個方法都存在兩種形式:一種拋出異常(操作失敗時),還有一種返回一個特殊值(null 或 false,詳細取決於操作)。插入操作的後一種形式是用於專門為有容量限制的 Queue 實現設計的;在大多數實現中,插入操作不會失敗。

  拋出異常 返回特殊值
插入 add(e) offer(e)
移除 remove() poll()
檢查 element() peek()

隊列通常(但並不是一定)以 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 中隊列的使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.