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
import java.util.*;
public class Priority_Queue_Demo {
public static void main(String[] args)
{
PriorityQueue<Integer> queue = new PriorityQueue<Integer>();
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);
Comparator comp = queue.comparator();
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
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());
}
}
}
|
OutputThe elements with the highest priority element at front of queueorder:
S K G E E 4