您好,登錄后才能下訂單哦!
這篇文章主要講解了“PriorityQueue優先級隊列是什么意思”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PriorityQueue優先級隊列是什么意思”吧!
JDK版本是1.8
兩種方法沒有什么本質的區別,add()只是把offer()方法包裝一下。
if (e == null) throw new NullPointerException(); modCount++; int i = size; if (i >= queue.length) grow(i + 1);//擴容 size = i + 1; if (i == 0) queue[0] = e;//隊列為空的情況下,直接放入 else siftUp(i, e); //調整節點(該方法是主要的方法),在位置i處插入e,和e的父節點比較,直到該節點大于或等于其父級或者是根。 return true;
獲取隊列頭元素,但不會刪除
(size == 0) ? null : (E) queue[0];
獲取隊列頭元素,但會刪除頭元素,并且因為刪除頭元素,會調整隊列的元素位置
if (size == 0) return null; int s = --size; //隊列大小減一 modCount++; E result = (E) queue[0];//獲取頭元素 E x = (E) queue[s];//記錄隊列最后的元素 queue[s] = null;//刪除隊列最后的元素 if (s != 0) siftDown(0, x);//調整整個隊列的元素的位置,在位置0處插入項x,和x的葉子節點比較,直到它小于或等于其子項或者是葉子 return result;
感謝各位的閱讀,以上就是“PriorityQueue優先級隊列是什么意思”的內容了,經過本文的學習后,相信大家對PriorityQueue優先級隊列是什么意思這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。