java 類 LinkedList<E> 表示 數據結構 堆 棧 隊列 雙端隊列
今日java刷題收穫。。
本來刷題時需要用到數據結構 隊列 (先進先出)
鍵盤敲了一個Queue<Node> queue = new Queue();
結果是一個接口,要實現所有的方法emmmmmmm。。。。。。。。。
後來百度
/*
Queue: 基本上,一個隊列就是一個先入先出(FIFO)的數據結構
Queue接口與List、Set同一級別,都是繼承了Collection接口。LinkedList實現了Deque接 口。
Queue的實現
1、沒有實現的阻塞接口的LinkedList: 實現了java.util.Queue接口和java.util.AbstractQueue接口
內置的不阻塞隊列: PriorityQueue 和 ConcurrentLinkedQueue
PriorityQueue 和 ConcurrentLinkedQueue 類在 Collection Framework 中加入兩個具體集合實現。
PriorityQueue 類實質上維護了一個有序列表。加入到 Queue 中的元素根據它們的天然排序(通過其 java.util.Comparable 實現)或者根據傳遞給構造函數的 java.util.Comparator 實現來定位。
ConcurrentLinkedQueue 是基於鏈接節點的、線程安全的隊列。併發訪問不需要同步。因爲它在隊列的尾部添加元素並從頭部刪除它們,所以只要不需要知道隊列的大 小, ConcurrentLinkedQueue 對公共集合的共享訪問就可以工作得很好。收集關於隊列大小的信息會很慢,需要遍歷隊列。
2)實現阻塞接口的:
java.util.concurrent 中加入了 BlockingQueue 接口和五個阻塞隊列類。它實質上就是一種帶有一點扭曲的 FIFO 數據結構。不是立即從隊列中添加或者刪除元素,線程執行操作阻塞,直到有空間或者元素可用。
五個隊列所提供的各有不同:
* ArrayBlockingQueue :一個由數組支持的有界隊列。
* LinkedBlockingQueue :一個由鏈接節點支持的可選有界隊列。
* PriorityBlockingQueue :一個由優先級堆支持的無界優先級隊列。
* DelayQueue :一個由優先級堆支持的、基於時間的調度隊列。
* SynchronousQueue :一個利用 BlockingQueue 接口的簡單聚集(rendezvous)機制。
*/
看了這麼多.......後來我是使用了ConcurrentLinkedQueue類,有點長,,,,不過題還是成功AC了
後來再看API------->這樣也可以
Queue<Object> queue = new LinkedList<>();
看到這裏,茅塞頓開
數據結構不就是一種邏輯思維嗎,能用數組實現,也可以用鏈表實現
只不過對其操作用不同的方法罷了
下篇博客總結不同數據結構調用的方法,用方便自己查找