Open In App

PriorityBlockingQueue comparator() method in Java

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
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–



Last Updated : 03 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads