java,priorityqueue
java中的priorityqueue一般也就是代表優先隊列。
這是屬於Queue接口的實現,能夠對其中元素進行排序,還能放基本數據類型的包裝類或是自定義的類,而對於基本數據類型的包裝類,優先隊列中元素一般是默認排列順序爲升序排列的。
參考範例:
隊列保存的是基本數據類型的包裝類,具體代碼爲:
//自定義比較器,降序排列
static Comparator<Integer> cmp = new Comparator<Integer>() {
public int compare(Integer e1, Integer e2) {
return e2 - e1;
}
};
public static void main(String[] args) {
//不用比較器,默認升序排列
Queue<Integer> q = new PriorityQueue<>();
q.add(3);
q.add(2);
q.add(4);
while(!q.isEmpty())
{
System.out.print(q.poll()+" ");
}
/**
* 輸出結果
* 2 3 4
*/
//使用自定義比較器,降序排列
Queue<Integer> qq = new PriorityQueue<>(cmp);
qq.add(3);
qq.add(2);
qq.add(4);
while(!qq.isEmpty())
{
System.out.print(qq.poll()+" ");
}
/**
* 輸出結果
* 4 3 2
*/
}
隊列保存的是自定義類,具體代碼爲:
//矩形類
class Node{
public Node(int chang,int kuan)
{
this.chang=chang;
this.kuan=kuan;
}
int chang;
int kuan;
}
public class Test {
//自定義比較類,先比較長,長升序排列,若長相等再比較寬,寬降序
static Comparator<Node> cNode=new Comparator<Node>() {
public int compare(Node o1, Node o2) {
if(o1.chang!=o2.chang)
return o1.chang-o2.chang;
else
return o2.kuan-o1.kuan;
}
};
public static void main(String[] args) {
Queue<Node> q=new PriorityQueue<>(cNode);
Node n1=new Node(1, 2);
Node n2=new Node(2, 5);
Node n3=new Node(2, 3);
Node n4=new Node(1, 2);
q.add(n1);
q.add(n2);
q.add(n3);
Node n;
while(!q.isEmpty())
{
n=q.poll();
System.out.println("長: "+n.chang+" 寬:" +n.kuan);
}
/**
* 輸出結果
* 長: 1 寬:2
* 長: 2 寬:5
* 長: 2 寬:3
*/
}
}
-
手機殼髒了該怎麼清洗
1、硅膠手機殼的清洗方法。先找一個乾的布並放在水裏清洗一下,撈出來之後再擰乾,放在陽臺上曬曬,等曬得差不多了我們就可以用它仔仔細細地把手機殼清洗一次。如果發現你的手機殼上有污點的話,或者是灰塵,都可以用小牙刷沾上一點牙膏來清洗。如果你的手機殼上有膠水...
-
手機qq如何判斷好友是否隱身
1、在手機桌面上打開【QQ】,進入主界面,點擊【聯繫人】選項。然後點擊要判斷是否隱身的好友。在他的詳細資料界面,點擊【發消息】。進入聊天界面後,點擊右上角【通話】。2、在通話方式中,選擇【語音通話】功能。如果顯示【等待對方接聽】,那他就在隱身。顯示爲【對方...
-
怎麼查看微信羣在哪裏
1、成功登陸微信後,點擊微信通訊錄選項卡,在微信通訊錄裏可以看到羣聊,點擊羣聊。2、打開羣聊後,在羣聊這裏什麼都沒有,點擊羣聊右上角的“+”圖標。3、在發起羣聊界面上,點擊選擇一個羣。4、點擊進入到選擇羣聊界面後,在選擇羣聊就裏可以看到所有的微信羣了。5、點擊...
-
螞蟻森林如何不讓別人收取能量,積分兌換
1、首先打開支付寶APP,點擊:我的,在我的頁面找到:螞蟻會員,點進去。2、進來之後,我們在螞蟻會員頁面找到:領積分,點擊進去。3、進來之後我們可以看到自己的積分,以及:螞蟻森林能量保護罩的圖標,我們會看到兌換需要200積分,積分足夠可以點擊,馬上兌。4、之後進入螞蟻森林頁面...
相關文章
- 解決microsoft visual c++ runtime library教程
- 解決Antimalware Service,Executable CPU佔用高
- adobe gc,invoker utility有什麼用
- vmware安裝ubuntu " Intel VT-x 處於禁用狀態"
- duplicate entry for key primary
- 虛擬機的VMware Authorization service未運行
- XP系統出現unable to find a,version of the rutime怎麼辦
- realtek hd,audio univer可以禁用嗎
- preparingautomaticrepair什麼意思
- The requested resource,is not available處理