java 類 LinkedList 表示 數據結構 堆 棧 隊列 雙端隊列

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<>();

看到這裏,茅塞頓開

 

數據結構不就是一種邏輯思維嗎,能用數組實現,也可以用鏈表實現

只不過對其操作用不同的方法罷了

 

下篇博客總結不同數據結構調用的方法,用方便自己查找

 

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