Queue 队列的用法
生活随笔
收集整理的這篇文章主要介紹了
Queue 队列的用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
隊列是一種特殊的線性表,它只允許在表的前端進行刪除操作,而在表的后端進行插入操作。
LinkedList類實現了Queue接口,因此我們可以把LinkedList當成Queue來用。
以下實例演示了隊列(Queue)的用法: import java.util.LinkedList; import java.util.Queue;public class Main {public static void main(String[] args) {//add()和remove()方法在失敗的時候會拋出異常(不推薦)Queue<String> queue = new LinkedList<String>();//添加元素queue.offer("a");queue.offer("b");queue.offer("c");queue.offer("d");queue.offer("e");for(String q : queue){System.out.println(q);}System.out.println("===");System.out.println("poll="+queue.poll()); //返回第一個元素,并在隊列中刪除for(String q : queue){System.out.println(q);}System.out.println("===");System.out.println("element="+queue.element()); //返回第一個元素 for(String q : queue){System.out.println(q);}System.out.println("===");System.out.println("peek="+queue.peek()); //返回第一個元素 for(String q : queue){System.out.println(q);}} } 以上代碼運行輸出結果為: a b c d e === poll=a b c d e === element=b b c d e === peek=b b c d e
LinkedList類實現了Queue接口,因此我們可以把LinkedList當成Queue來用。
以下實例演示了隊列(Queue)的用法: import java.util.LinkedList; import java.util.Queue;public class Main {public static void main(String[] args) {//add()和remove()方法在失敗的時候會拋出異常(不推薦)Queue<String> queue = new LinkedList<String>();//添加元素queue.offer("a");queue.offer("b");queue.offer("c");queue.offer("d");queue.offer("e");for(String q : queue){System.out.println(q);}System.out.println("===");System.out.println("poll="+queue.poll()); //返回第一個元素,并在隊列中刪除for(String q : queue){System.out.println(q);}System.out.println("===");System.out.println("element="+queue.element()); //返回第一個元素 for(String q : queue){System.out.println(q);}System.out.println("===");System.out.println("peek="+queue.peek()); //返回第一個元素 for(String q : queue){System.out.println(q);}} } 以上代碼運行輸出結果為: a b c d e === poll=a b c d e === element=b b c d e === peek=b b c d e
?
?
?
?Queue ?概念
隊列是一種數據結構.它有兩個基本操作:在隊列尾部加人一個元素,和從隊列頭部移除一個元素就是說,隊列以一種先進先出的方式管理數據,如果你試圖向一個 已經滿了的阻塞隊列中添加一個元素或者是從一個空的阻塞隊列中移除一個元索,將導致線程阻塞.在多線程進行合作時,阻塞隊列是很有用的工具。工作者線程可 以定期地把中間結果存到阻塞隊列中而其他工作者線線程把中間結果取出并在將來修改它們。隊列會自動平衡負載。如果第一個線程集運行得比第二個慢,則第二個 線程集在等待結果時就會阻塞。如果第一個線程集運行得快,那么它將等待第二個線程集趕上來。下表顯示了jdk1.5中的阻塞隊列的操作:add 增加一個元索 如果隊列已滿,則拋出一個IIIegaISlabEepeplian異常 remove 移除并返回隊列頭部的元素 如果隊列為空,則拋出一個NoSuchElementException異常 element 返回隊列頭部的元素 如果隊列為空,則拋出一個NoSuchElementException異常 offer 添加一個元素并返回true 如果隊列已滿,則返回false poll 移除并返問隊列頭部的元素 如果隊列為空,則返回null peek 返回隊列頭部的元素 如果隊列為空,則返回null put 添加一個元素 如果隊列滿,則阻塞 take 移除并返回隊列頭部的元素 如果隊列為空,則阻塞remove、element、offer 、poll、peek 其實是屬于Queue接口。?
?
總結
以上是生活随笔為你收集整理的Queue 队列的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ThinikPhp 将数据库模型的增、删
- 下一篇: IOS 输入框 placeholder字