Java中的PriorityQueue comparator()方法

爪哇。util。优先队列。comparator()方法共享设置和返回比较器的重要功能,该比较器可用于在 优先队列 。如果队列遵循元素的自然排序模式,则该方法返回空值。 语法:

null
comp_set = (PriorityQueue)Priority_Queue.comparator()

参数: 该方法不采用任何参数。 返回值: 该方法返回用于按特定顺序排列队列元素的比较器。如果队列遵循默认或自然排序模式,则返回空值。 下面的程序演示了java。util。优先队列。comparator()方法: 项目1: 当使用元素的自然顺序时:

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


输出:

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

项目2: 当使用特定的 比较器 .

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());
}
}
}


输出

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

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享