java優先隊列的使用 包括重寫Compare 按自定義順序排列

優先級隊列是每次從隊列中取出的是具有最高優先權的元素。
  
PriorityQueue是從JDK1.5開始提供的新的數據結構接口。

如果不提供Comparator的話,優先隊列中元素默認按自然順序排列(升序),也就是數字默認是小的在隊列頭,字符串則按字典序排列。

如果想實現按照自己的意願進行優先級排列的隊列的話,需要實現Comparator接口。下面的方法,實現了根據某個變量,來進行優先級隊列的建立。

public static void main(String args[]){

       Queue<Integer> que2 = new PriorityQueue<Integer>();
       que2.add(11);
       que2.add(2);
       que2.add(14);
       que2.add(5);
       que2.add(7);

       while(que2.size()>0){
           System.out.print(" " + que2.poll());		//2 5 7 11 14
       }
       System.out.println();

       //重寫compare後
       que2=new PriorityQueue<>(new Comparator<Integer>() {
           @Override
           public int compare(Integer o1, Integer o2) {
               return o2.compareTo(o1);
           }
       });
       System.out.println("重寫compare後-------");
       
       que2.add(11);
       que2.add(2);
       que2.add(14);
       que2.add(5);
       que2.add(7);
       while(que2.size()>0){
           System.out.print(" " + que2.poll());		// 14 11 7 5 2
       }
       System.out.println();
}

————————————————
版權聲明:本文爲CSDN博主「hiphopmattshi」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/hiphopmattshi/article/details/7334487

發佈了33 篇原創文章 · 獲贊 22 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章