Open In App

PriorityBlockingQueue comparator() method in Java

Last Updated : 03 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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


Output:

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 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 + ", ");
    }
}


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–



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads