上節(jié)介紹了堆的基本概念和算法,本節(jié)我們來探討堆在Java中的具體實(shí)現(xiàn)類 - PriorityQueue。
我們先從基本概念談起,然后介紹其用法,接著分析實(shí)現(xiàn)代碼,最后總結(jié)分析其特點(diǎn)。
基本概念
顧名思義,PriorityQueue是優(yōu)先級(jí)隊(duì)列,它首先實(shí)現(xiàn)了隊(duì)列接口(Queue),與LinkedList類似,它的隊(duì)列長(zhǎng)度也沒有限制,與一般隊(duì)列的區(qū)別是,它有優(yōu)先級(jí)的概念,每個(gè)元素都有優(yōu)先級(jí),隊(duì)頭的元素永遠(yuǎn)都是優(yōu)先級(jí)最高的。
PriorityQueue內(nèi)部是用堆實(shí)現(xiàn)的,內(nèi)部元素不是完全有序的,不過,逐個(gè)出隊(duì)會(huì)得到有序的輸出。
雖然名字叫優(yōu)先級(jí)隊(duì)列,但也可以將PriorityQueue看做是一種比較通用的實(shí)現(xiàn)了堆的性質(zhì)的數(shù)據(jù)結(jié)構(gòu),可以用PriorityQueue來解決適合用堆解決的問題,下一節(jié)我們會(huì)來看一些具體的例子。
基本用法
Queue接口
PriorityQueue實(shí)現(xiàn)了Queue接口,我們?cè)?a target="_blank">LinkedList一節(jié)介紹過Queue,為便于閱讀,這里重復(fù)下其定義:
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26
![學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)](http://m.roadsoft.com.cn/attached/image/templet/e87d53eb-cf7a-4689-887a-1cd260f416a5.jpg)