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
相關用法
- Java Stream sorted(Comparator comparator)用法及代碼示例
- Java Collectors minBy(Comparator comparator)用法及代碼示例
- Java Collectors maxBy(Comparator comparator)用法及代碼示例
- Java TreeSet comparator()用法及代碼示例
- Java PriorityBlockingQueue comparator()用法及代碼示例
- Java PriorityQueue add()用法及代碼示例
- Java PriorityQueue contains()用法及代碼示例
- Java Comparator thenComparingDouble()用法及代碼示例
- Java Comparator naturalOrder()用法及代碼示例
- Java Comparator reversed()用法及代碼示例
- Java Comparator nullsLast()用法及代碼示例
- Java Comparator reverseOrder()用法及代碼示例
- Java Comparator comparingLong()用法及代碼示例
- Java Comparator thenComparingLong()用法及代碼示例
注:本文由純淨天空篩選整理自Chinmoy Lenka大神的英文原創作品 PriorityQueue comparator() Method in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。