Skip to content
Related Articles

Related Articles

PriorityQueue comparator() Method in Java
  • Difficulty Level : Easy
  • Last Updated : 25 Aug, 2020
GeeksforGeeks - Summer Carnival Banner

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 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 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 elemetns 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 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:");
        for (String element : queue)
            System.out.print(element + " ");
    }
}
Output:
The elements with the highest priority element at front of queueorder:
S K E E G 4 

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :