Open In App
Related Articles

PriorityQueue comparator() Method in Java

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

The java.util.PriorityQueue.comparator() method shares an important function of setting and returning the comparator that can be used to order the elements in a PriorityQueue. The method returns a null value if the queue follows the natural ordering pattern of the elements.
Syntax: 

comp_set = (PriorityQueue)Priority_Queue.comparator()


Parameters: The method does not take any parameters.
Return Value: The method returns the comparator used to order the elements of the queue in a specific order. It returns a Null value if the queue follows the default or natural ordering pattern.
Below programs illustrate the java.util.PriorityQueue.comparator() method: 
Program 1: When using natural ordering of the elements: 
 

Java

// Java code to illustrate comparator()
import java.util.*;
 
public class Priority_Queue_Demo {
    public static void main(String[] args)
    {
 
        // Creating an empty Priority_Queue
        PriorityQueue<Integer> queue = new PriorityQueue<Integer>();
 
        // Adding elements to the queue
        queue.add(20);
        queue.add(24);
        queue.add(30);
        queue.add(35);
        queue.add(45);
        queue.add(50);
 
        System.out.println("Priority queue values are: " + queue);
 
        // Creating a comparator
        Comparator comp = queue.comparator();
 
        // Displaying the comparator values
        System.out.println("Since the Comparator value is: " + comp);
        System.out.println("it follows natural ordering");
    }
}

                    

Output: 
Priority queue values are: [20, 24, 30, 35, 45, 50]
Since the Comparator value is: null
it follows natural ordering

 

Program 2: When using a specific comparator
 

Java

// Java code to illustrate the use of comparator()
import java.util.Comparator;
import java.util.PriorityQueue;
 
class The_Comparator implements Comparator<String> {
    public int compare(String str1, String str2)
    {
        String first_Str;
        String second_Str;
        first_Str = str1;
        second_Str = str2;
        return second_Str.compareTo(first_Str);
    }
}
 
public class Priority_Queue_Demo {
    public static void main(String[] args)
    {
        PriorityQueue<String> queue = new
        PriorityQueue<String>(new The_Comparator());
 
        queue.add("G");
        queue.add("E");
        queue.add("E");
        queue.add("K");
        queue.add("S");
        queue.add("4");
         
 
        System.out.println("The elements with the highest priority element at front of queue"
                           + "order:");
        while(!queue.isEmpty()){
          System.out.print(" "+queue.poll());
        }
    }
}

                    

Output
The elements with the highest priority element at front of queueorder:
 S K G E E 4


Last Updated : 20 Jun, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads