今天做了力扣的每日一題 ==》?2208.?將數(shù)組和減半的最少操作次數(shù)? 起初我用數(shù)組這個(gè)死方法去做這個(gè)題,代碼寫出來了,不過在最后運(yùn)行的時(shí)候超時(shí)了??创罄械慕獯鹬校野l(fā)現(xiàn)了這個(gè)類,之前從來都沒看到過,所以學(xué)習(xí)了一下,寫這篇文章記一下。
目錄
前言
一、PriorityQueue是什么?
二、簡(jiǎn)單使用
? ?1.創(chuàng)建對(duì)象
? ?2.方法使用
總結(jié)
前言
好看好學(xué)
一、PriorityQueue是什么?
從單詞的意思上老說。Priority的意思是優(yōu)先,Queue是隊(duì)列的意思。那這個(gè)合起來意思就是 優(yōu)先隊(duì)列。有時(shí)需要根據(jù)優(yōu)先級(jí)處理隊(duì)列的元素,這就是PriorityQueue發(fā)揮作用的地方。PriorityQueue基于優(yōu)先級(jí)堆。優(yōu)先級(jí)隊(duì)列的元素按照自然順序排序,或者由隊(duì)列構(gòu)造時(shí)提供的Comparator排序,這取決于使用的是哪個(gè)構(gòu)造函數(shù)。
二、簡(jiǎn)單使用
? ?1.創(chuàng)建對(duì)象
? ? ? ??在這個(gè)類中,可以創(chuàng)建兩種不同形式的兌:一個(gè)是大頂堆,一個(gè)是小頂堆,關(guān)于大頂堆和小頂堆是啥,可以可以去學(xué)習(xí)一個(gè)數(shù)據(jù)結(jié)構(gòu),里面會(huì)有相對(duì)應(yīng)的知識(shí)點(diǎn)。
a. 創(chuàng)建小頂堆
?創(chuàng)建小頂堆的話,直接使用默認(rèn)的創(chuàng)建方式即可。
// 創(chuàng)建小頂堆
PriorityQueue<Integer> pQueue = new PriorityQueue<Integer>();
b. 創(chuàng)建大頂堆
創(chuàng)建大頂堆的話,與創(chuàng)建小頂堆唯一的區(qū)別是后面有一可以Lambda表達(dá)式,里面進(jìn)行設(shè)置兩個(gè)參數(shù),用第二個(gè)參數(shù)減去第一個(gè)參數(shù),則會(huì)創(chuàng)建大頂堆。
// 第二個(gè)參數(shù)減第一個(gè)是大頂堆
PriorityQueue<Integer> pQueue = new PriorityQueue<Integer>((T1,T2)->T2-T1);
? ?2.方法使用
方法使用的話,一般來說,學(xué)過數(shù)據(jù)結(jié)構(gòu),自己寫過大小堆的話,會(huì)知道里面有啥方法的,并且如何實(shí)現(xiàn),應(yīng)該也知道一點(diǎn)兒,這兒只放一些方法有哪些:
public boolean add(E e); //在隊(duì)尾插入元素,插入失敗時(shí)拋出異常,并調(diào)整堆結(jié)構(gòu)
public boolean offer(E e); //在隊(duì)尾插入元素,插入失敗時(shí)拋出false,并調(diào)整堆結(jié)構(gòu)
public E remove(); //獲取隊(duì)頭元素并刪除,并返回,失敗時(shí)前者拋出異常,再調(diào)整堆結(jié)構(gòu)
public E poll(); //獲取隊(duì)頭元素并刪除,并返回,失敗時(shí)前者拋出null,再調(diào)整堆結(jié)構(gòu)
public E element(); //返回隊(duì)頭元素(不刪除),失敗時(shí)前者拋出異常
public E peek();//返回隊(duì)頭元素(不刪除),失敗時(shí)前者拋出null
public boolean isEmpty(); //判斷隊(duì)列是否為空
public int size(); //獲取隊(duì)列中元素個(gè)數(shù)
public void clear(); //清空隊(duì)列
public boolean contains(Object o); //判斷隊(duì)列中是否包含指定元素(從隊(duì)頭到隊(duì)尾遍歷)
public Iterator<E> iterator(); //迭代器
這些方法怎么用 可以看下面的博客 ==》什么是PriorityQueue優(yōu)先級(jí)隊(duì)列,使用PriorityQueue建立大頂堆和小頂堆
Java 優(yōu)先隊(duì)列(PriorityQueue)總結(jié)
【Java集合框架】09 ——PriorityQueue 類文章來源:http://www.zghlxwxcb.cn/news/detail-606226.html
總結(jié)
好學(xué),好耍,老子是坐忘道紅中?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-606226.html
到了這里,關(guān)于關(guān)于java中PriorityQueue類的使用方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!