導航:首頁 > 編程語言 > java的隊列類

java的隊列類

發布時間:2024-10-24 05:14:13

java中的隊列都有哪些,有什麼區別

阻塞隊列、普通隊列,非阻塞隊列。

阻塞隊列與普通隊列的而區別在於,當隊列是空時,從隊列中獲取元素的操作會被阻塞,或則當隊列是滿的時,往隊列中增加元素會被阻塞,試圖從空的隊列中取元素的線程或從滿的隊列中添加元素的線程同樣會被阻塞。

Ⅱ java中的「queue類」是什麼,有什麼作用

java中的queue類是隊列數據結構管理類。在它里邊的元素可以按照添加它們的相同順序被移除。
隊列通常(但並非一定)以 FIFO(先進先出)的方式排序各個元素。不過優先順序隊列和 LIFO 隊列(或堆棧)例外,前者根據提供的比較器或元素的自然順序對元素進行排序,後者按 LIFO(後進先出)的方式對元素進行排序。無論使用哪種排序方式,隊列的頭都是調用remove()或poll()所移除的元素。在 FIFO 隊列中,所有的新元素都插入隊列的末尾。其他種類的隊列可能使用不同的元素放置規則。每個Queue實現必須指定其順序屬性。

offer 添加一個元素並返回true 如果隊列已滿,則返回false
poll 移除並返問隊列頭部的元素 如果隊列為空,則返回null
peek 返回隊列頭部的元素 如果隊列為空,則返回null
put 添加一個元素 如果隊列滿,則阻塞
take 移除並返回隊列頭部的元素 如果隊列為空,則阻塞
element 返回隊列頭部的元素 如果隊列為空,則拋出一個NoSuchElementException異常

add 增加一個元索 如果隊列已滿,則拋出一個IIIegaISlabEepeplian異常
remove 移除並返回隊列頭部的元素 如果隊列為空,則拋出一個
NoSuchElementException異常

注意:poll和peek方法出錯進返回null。因此,向隊列中插入null值是不合法的。

還有帶超時的offer和poll方法重載,例如,下面的調用:
boolean success = q.offer(x,100,TimeUnit.MILLISECONDS);
嘗試在100毫秒內向隊列尾部插入一個元素。如果成功,立即返回true;否則,當到達超時進,返回false。同樣地,調用:
Object head = q.poll(100, TimeUnit.MILLISECONDS);
如果在100毫秒內成功地移除了隊列頭元素,則立即返回頭元素;否則在到達超時時,返回null。
阻塞操作有put和take。put方法在隊列滿時阻塞,take方法在隊列空時阻塞。

Queue介面與List、Set同一級別,都是繼承了Collection介面。LinkedList實現了Queue接 口。Queue介面窄化了對LinkedList的方法的訪問許可權(即在方法中的參數類型如果是Queue時,就完全只能訪問Queue介面所定義的方法 了,而不能直接訪問 LinkedList的非Queue的方法),以使得只有恰當的方法才可以使用。BlockingQueue 繼承了Queue介面。

閱讀全文

與java的隊列類相關的資料

熱點內容
虛擬機中編譯器 瀏覽:474
台達PLC編譯按鈕在哪裡 瀏覽:137
非編程計算器多少錢 瀏覽:653
房本還完貸款解壓 瀏覽:816
中國程序員有出名嗎 瀏覽:546
亳州雲伺服器 瀏覽:630
程序員最難的面試 瀏覽:892
配音秀app怎麼誦讀 瀏覽:751
sparkcore源碼 瀏覽:100
程序員中年生活 瀏覽:355
讀取加密信息失敗怎麼回事 瀏覽:510
編譯過程之後是預處理嗎 瀏覽:351
安卓是基於什麼做出來 瀏覽:600
視頻字幕提取APP怎麼使用 瀏覽:59
js通過ip地址連接伺服器嗎 瀏覽:848
java數字金額大寫金額 瀏覽:858
人人影視路由器固件編譯 瀏覽:967
照片通訊錄簡訊怎麼從安卓到蘋果 瀏覽:458
邏輯開發編譯環境 瀏覽:672
ce自己編譯 瀏覽:898