PriorityBlockingQueue comparator() method in Java

The comparator() method of PriorityBlockingQueue returns the comparator that can be used to order the elements in a PriorityBlockingQueue. The method returns null value if the queue follows the natural ordering pattern of the elements. Syntax:
public Comparator<? super E> comparator()
Returns: This method returns the comparator set used to order the elements of the set in a specific order. It returns a null value if the PriorityBlockingQueue follows the default or natural ordering pattern. Below programs illustrate comparator() method of PriorityBlockingQueue: Example 1: To demonstrate comparator() method on PriorityBlockingQueue which contains a list of integers.
Java
// Java Program Demonstrate comparator()// method of PriorityBlockingQueueimport java.util.concurrent.PriorityBlockingQueue;import java.util.*;public class GFG { public static void main(String[] args) throws InterruptedException { // create object of PriorityBlockingQueue PriorityBlockingQueue<Integer> PrioQueue = new PriorityBlockingQueue<Integer>(); // Add numbers to PriorityBlockingQueue PrioQueue.put(45815616); PrioQueue.put(4981561); PrioQueue.put(4594591); PrioQueue.put(9459156); // get String representation of PriorityBlockingQueue String str = PrioQueue.toString(); // Creating a comparator using comparator() Comparator comp = PrioQueue.comparator(); // Displaying the comparator values System.out.println("Comparator value: " + comp); if (comp == null) System.out.println("PriorityBlockingQueue" + "follows natural ordering"); else System.out.println("PriorityBlockingQueue follows" + comp); }} |
Comparator value: null PriorityBlockingQueuefollows natural ordering
Example 2: To demonstrate comparator() method on PriorityBlockingQueue which contains a list of integers.
Java
// Java Program Demonstrate comparator()// method of PriorityBlockingQueueimport java.util.concurrent.PriorityBlockingQueue;import java.util.*;// Comparator to compare Stringsclass COMPARING implements Comparator<String> { public int compare(String str1, String str2) { return str2.compareTo(str1); }}public class GFG { public static void main(String[] args) throws InterruptedException { // define capacity of PriorityBlockingQueue int capacityOfQueue = 5; // create object of PriorityBlockingQueue // by passing capacity and comparator class // as parameters. PriorityBlockingQueue<String> characters = new PriorityBlockingQueue<String>(capacityOfQueue, new COMPARING()); // Add Strings characters.add("Geeks"); characters.add("forGeeks"); characters.add("A computer portal"); // Getting the comparator using comparator() Comparator comp = characters.comparator(); // Displaying the comparator values System.out.println("Comparator value is: " + comp); if (comp == null) System.out.println("PriorityBlockingQueue" + "follows natural ordering"); else System.out.println("PriorityBlockingQueue follows: " + comp); // display result System.out.println("\nThe elements after custom Comparator"); for (String e : characters) System.out.print(e + ", "); }} |
Comparator value is: COMPARING@28d93b30 PriorityBlockingQueue follows: COMPARING@28d93b30 The elements after custom Comparator forGeeks, Geeks, A computer portal,



