Java™ 教程(Queue實現)

Queue實現

Queue實現分爲通用實現和併發實現。html

通用Queue實現

如上一節所述,LinkedList實現了Queue接口,爲addpoll等提供了先進先出(FIFO)隊列操做。java

PriorityQueue類是基於堆數據結構的優先級隊列,此隊列根據構造時指定的順序對元素進行排序,這些順序能夠是元素的天然順序,也能夠是顯式Comparator施加的順序。segmentfault

隊列檢索操做 — pollremovepeekelement訪問隊列開頭的元素,就指定的順序而言,隊列的頭是最小的元素,若是多個元素的值最小,那麼頭是這些元素之一;關係被任意打破。api

PriorityQueue及其迭代器實現CollectionIterator接口的全部可選方法,不保證方法iterator中提供的迭代器以任何特定順序遍歷PriorityQueue的元素,對於有序遍歷,請考慮使用Arrays.sort(pq.toArray())數組

併發Queue實現

java.util.concurrent包包含一組同步的Queue接口和類,BlockingQueue擴展了Queue的操做,這些操做在檢索元素時等待隊列變爲非空,在存儲元素時等待隊列中的空間變爲可用,該接口由如下類實現:數據結構

在JDK 7中,TransferQueue是專門的BlockingQueue,其中將元素添加到隊列中的代碼能夠選擇等待(阻塞)另外一個線程中的代碼來檢索該元素,TransferQueue有一個實現:併發


上一篇:Map實現

相關文章
相關標籤/搜索