Java集合框架詳解之繼承queue接口

趁着最近比較閒,靜下心來準備把關於集合框架的東西好好整理一下,邊學邊整理。近階段先是整理整體的知識點,一些接口,一些繼承類以及它們的特性,用法,後續還會有一些常用的,比較重要的類的jdk源碼剖析。

Java集合框架詳解之繼承set接口:http://blog.csdn.net/JasonZhangOO/article/details/55807103
Java集合框架詳解之繼承list接口:http://blog.csdn.net/JasonZhangOO/article/details/55807177
Java集合框架詳解之繼承queue接口:http://blog.csdn.net/JasonZhangOO/article/details/55807197
Java集合框架詳解之繼承map接口:http://blog.csdn.net/JasonZhangOO/article/details/55807685
Java集合框架詳解之一點小總結:http://blog.csdn.net/JasonZhangOO/article/details/55808011

繼承queue接口

Queue接口與List、Set同一級別,都是繼承了Collection接口。LinkedList實現了Queue接口。
隊列數據結構有先進先出的特性,在滿隊列中添加元素或者空隊列中刪除數據都會引起線程阻塞。
-add:增加元素。 如果隊列已滿,則拋出一個IIIegaISlabEepeplian異常;
-remove: 移除並返回隊列頭部的元素。 如果隊列爲空,則拋出一個NoSuchElementException異常;
-element: 返回隊列頭部的元素。 如果隊列爲空,則拋出一個NoSuchElementException異常;
-offer:添加一個元素並返回true。如果隊列已滿,則返回false,避免像add一樣報錯;
-poll:移除並返問隊列頭部的元素。如果隊列爲空,則返回null,避免拋出異常;
-peek:返回隊列頭部的元素。如果隊列爲空,則返回null;
-put:添加一個元素。如果隊列滿,則阻塞;
-take:移除並返回隊列頭部的元素。如果隊列爲空,則阻塞。

五種隊列:
-ArrayBlockingQueue :由數組支持的有界隊列。基於數組的阻塞循環隊列,先進先出原則排序。
-LinkedBlockingQueue:由鏈接節點支持的可選有界隊列。基於鏈表的隊列,先進先出排序元素。
-PriorityBlockingQueue:由優先級堆支持的無界優先級隊列。PriorityBlockingQueue是對PriorityQueue的再次包裝,是基於堆數據結構的,當資源耗盡,避免out of memory,添加會阻塞,空隊列取元素也會阻塞。
-DelayQueue:由優先級堆支持的、基於時間的調度隊列。(基於PriorityQueue來實現的)是一個存放Delayed 元素的無界阻塞隊列,只有在延遲期滿時才能從中提取元素。
-SynchronousQueue:一個利用BlockingQueue接口的簡單聚集(rendezvous)機制。元素就直接在消費者和生產者之間傳遞,永遠不會加入到阻塞隊列中。

參考文章:
http://www.codeceo.com/article/java-collection-summary.html
http://www.codeceo.com/article/java-collection-class.html
http://www.imooc.com/article/1893
http://blog.csdn.net/softwave/article/details/4166598

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章