PriorityQueue comparator() Method in Java

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:



filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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.

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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 and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : utkarshkalia