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 PriorityBlockingQueueÂ
import 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 PriorityBlockingQueueÂ
import 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,
