當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java PriorityQueue comparator()用法及代碼示例


java.util.PriorityQueue.comparator()方法具有一項重要的函數,即設置和返回比較器,該比較器可用於對PriorityQueue中的元素進行排序。如果隊列遵循元素的自然排序模式,則該方法返回Null值。

用法:

comp_set = (PriorityQueue)Priority_Queue.comparator()

參數:該方法不帶任何參數。


返回值:該方法返回用於以特定順序對隊列元素進行排序的比較器。如果隊列遵循默認或自然排序模式,則它將返回Null值。

下麵的程序演示了java.util.PriorityQueue.comparator()方法:
示例1:使用元素的自然順序時:

// Java code to illustrate comparator() 
import java.util.*; 
  
public class Priority_Queue_Demo { 
    public static void main(String[] args) 
    { 
  
        // Creating an empty Priority_Queue 
        PriorityQueue<Integer> queue = new PriorityQueue<Integer>(); 
  
        // Adding elemetns to the queue 
        queue.add(20); 
        queue.add(24); 
        queue.add(30); 
        queue.add(35); 
        queue.add(45); 
        queue.add(50); 
  
        System.out.println("Priority queue values are: " + queue); 
  
        // Creating a comparator 
        Comparator comp = queue.comparator(); 
  
        // Displaying the comparator values 
        System.out.println("Since the Comparator value is: " + comp); 
        System.out.println("it follows natural ordering"); 
    } 
}
輸出:
Priority queue values are: [20, 24, 30, 35, 45, 50]
Since the Comparator value is: null
it follows natural ordering

示例2:使用特定的比較器時。

// Java code to illustrate the use of comparator() 
import java.util.Comparator; 
import java.util.PriorityQueue; 
  
class The_Comparator implements Comparator<String> { 
    public int compare(String str1, String str2) 
    { 
        String first_Str; 
        String second_Str; 
        first_Str = str1; 
        second_Str = str2; 
        return second_Str.compareTo(first_Str); 
    } 
} 
  
public class Priority_Queue_Demo { 
    public static void main(String[] args) 
    { 
        PriorityQueue<String> queue = new 
        PriorityQueue<String>(new The_Comparator()); 
  
        queue.add("G"); 
        queue.add("E"); 
        queue.add("E"); 
        queue.add("K"); 
        queue.add("S"); 
        queue.add("4"); 
        System.out.println("Queue before using the comparator: " + queue); 
  
        System.out.println("The elements sorted in descending"
                           + "order:"); 
        for (String element : queue) 
            System.out.print(element + " "); 
    } 
}
輸出:
Queue before using the comparator: [S, K, E, E, G, 4]
The elements sorted in descendingorder:
S K E E G 4


相關用法


注:本文由純淨天空篩選整理自Chinmoy Lenka大神的英文原創作品 PriorityQueue comparator() Method in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。