Friday, September 27, 2024
Google search engine
HomeLanguagesJavaPriorityBlockingQueue comparator() method in Java

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 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–

RELATED ARTICLES

Most Popular

Recent Comments