在Java中,要自定义PriorityQueue
的比较器,您需要创建一个实现Comparator
接口的类,并重写compare
方法
import java.util.Comparator; import java.util.PriorityQueue; public class CustomComparatorExample { public static void main(String[] args) { // 使用自定义比较器创建优先队列 PriorityQueuepriorityQueue = new PriorityQueue<>(new CustomComparator()); // 添加元素到优先队列 priorityQueue.add(10); priorityQueue.add(20); priorityQueue.add(5); priorityQueue.add(15); // 从优先队列中取出元素并打印 while (!priorityQueue.isEmpty()) { System.out.println(priorityQueue.poll()); } } } class CustomComparator implements Comparator { @Override public int compare(Integer o1, Integer o2) { // 自定义比较规则,例如这里我们将数字按照降序排列 return o2 - o1; } }
在这个示例中,我们创建了一个名为CustomComparator
的类,该类实现了Comparator
接口。我们重写了compare
方法,使其按照降序排列整数。然后,我们使用这个自定义比较器创建了一个PriorityQueue
,并向其中添加了一些整数。最后,我们从优先队列中取出元素并打印,可以看到它们按照降序排列。
您可以根据需要修改compare
方法中的比较规则,以实现自定义的排序顺序。