Queue: 基本上,一個隊列就是一個先入先出(FIFO)的數據結構
Queue接口與List、Set同一級別,都是繼承了Collection接口。LinkedList實現了Deque接 口。
1、未實現阻塞接口的:
LinkedList : 實現了Deque接口,受限的隊列
PriorityQueue : 優先隊列,本質維護一個有序列表。可自然排序亦可傳遞 comparator構造函數實現自定義排序。
ConcurrentLinkedQueue:基於鏈表 線程安全的隊列。增加刪除O(1) 查找O(n)
LinkedList : 實現了Deque接口,受限的隊列
PriorityQueue : 優先隊列,本質維護一個有序列表。可自然排序亦可傳遞 comparator構造函數實現自定義排序。
ConcurrentLinkedQueue:基於鏈表 線程安全的隊列。增加刪除O(1) 查找O(n)
2、實現阻塞接口的:
實現blockqueue接口的五個阻塞隊列,其特點:線程阻塞時,不是直接添加或者刪除元素,而是等到有空間或者元素時,才進行操作。
ArrayBlockingQueue: 基於數組的有界隊列
LinkedBlockingQueue: 基於鏈表的無界隊列
ProiporityBlockingQueue:基於優先次序的無界隊列
DelayQueue:基於時間優先級的隊列
SynchronousQueue:內部沒有容器的隊列 較特別 --其獨有的線程一一配對通信機制
LinkedBlockingQueue: 基於鏈表的無界隊列
ProiporityBlockingQueue:基於優先次序的無界隊列
DelayQueue:基於時間優先級的隊列
SynchronousQueue:內部沒有容器的隊列 較特別 --其獨有的線程一一配對通信機制
remove 移除並返回隊列頭部的元素 如果隊列為空,則拋出一個NoSuchElementException異常
element 返回隊列頭部的元素 如果隊列為空,則拋出一個NoSuchElementException異常
offer 添加一個元素並返回true 如果隊列已滿,則返回false
poll 移除並返問隊列頭部的元素 如果隊列為空,則返回null
peek 返回隊列頭部的元素 如果隊列為空,則返回null
put 添加一個元素 如果隊列滿,則阻塞
take 移除並返回隊列頭部的元素 如果隊列為空,則阻塞
參考鏈接:https://blog.csdn.net/bn493235694/article/details/79600634
http://www.importnew.com/28053.html