日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java queue总结

發布時間:2024/10/6 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java queue总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、LinkedBlockingQueue:基于鏈接節點的可選限定的blocking queue 。 這個隊列排列元素FIFO(先進先出)。 隊列的頭部是隊列中最長的元素。 隊列的尾部是隊列中最短時間的元素。 新元素插入隊列的尾部,隊列檢索操作獲取隊列頭部的元素。 鏈接隊列通常具有比基于陣列的隊列更高的吞吐量,但在大多數并發應用程序中的可預測性能較低。

blocking queue說明:不接受null元素;可能是容量有限的;實現被設計為主要用于生產者 - 消費者隊列;不支持任何類型的“關閉”或“關閉”操作,表示不再添加項目實現是線程安全的;

2、PriorityQueue:

2.1、基于優先級堆的無限優先級queue 。 優先級隊列的元素根據它們的有序natural ordering ,或由一個Comparator在隊列構造的時候提供,這取決于所使用的構造方法。 優先隊列不允許null元素。 依靠自然排序的優先級隊列也不允許插入不可比較的對象(這樣做可能導致ClassCastException )。

2.2、該隊列的頭部是相對于指定順序的最小元素。 如果多個元素被綁定到最小值,那么頭就是這些元素之一 - 關系被任意破壞。 隊列檢索操作poll , remove , peek和element訪問在隊列的頭部的元件。

2.3、優先級隊列是無限制的,但是具有管理用于在隊列上存儲元素的數組的大小的內部容量 。 它始終至少與隊列大小一樣大。 當元素被添加到優先級隊列中時,其容量會自動增長。 沒有規定增長政策的細節。

2.4、該類及其迭代器實現Collection和Iterator接口的所有可選方法。 方法iterator()中提供的迭代器不能保證以任何特定順序遍歷優先級隊列的元素。 如果需要有序遍歷,請考慮使用Arrays.sort(pq.toArray()) 。

2.5、請注意,此實現不同步。 如果任何線程修改隊列,多線程不應同時訪問PriorityQueue實例。 而是使用線程安全的PriorityBlockingQueue類。

實現注意事項:此實現提供了O(log(n))的時間入隊和出隊方法( offer , poll , remove()和add ); remove(Object)和contains(Object)方法的線性時間; 和恒定時間檢索方法( peek , element和size )。

3、ConcurrentLinkedQueue:基于鏈接節點的無界并發deque(deque是雙端隊列) 。 并發插入,刪除和訪問操作可以跨多個線程安全執行。 A ConcurrentLinkedDeque是許多線程將共享對公共集合的訪問的適當選擇。像大多數其他并發集合實現一樣,此類不允許使用null元素。

總結

以上是生活随笔為你收集整理的Java queue总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。