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.

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
    }
}

chevron_right


Output:

Comparator value: null
PriorityBlockingQueuefollows natural ordering

Example 2: To demonstrate toString() method on PriorityBlockingQueue which contains list of Strings.

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Program Demonstrate comparator()
// method of PriorityBlockingQueue
  
import java.util.concurrent.PriorityBlockingQueue;
import java.util.*;
  
// Comparator to compare Strings
class 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 + ", ");
    }
}

chevron_right


Output:

Comparator value is: COMPARING@28d93b30
PriorityBlockingQueue follows: COMPARING@28d93b30

The elements after custom Comparator
forGeeks, Geeks, A computer portal,

Reference: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html#comparator–



My Personal Notes arrow_drop_up

I am a Developer I love to code and bring my ideas alive

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.