小编典典

将 priorityQueue 更改为最大优先级队列

all

我在整数 Java 中有优先级队列:

 PriorityQueue<Integer> pq= new PriorityQueue<Integer>();

当我打电话时,pq.poll()我得到了最小的元素。

问题:如何更改代码以获得最大元素?


阅读 76

收藏
2022-08-24

共1个答案

小编典典

像这样怎么样:

PriorityQueue<Integer> queue = new PriorityQueue<>(10, Collections.reverseOrder());
queue.offer(1);
queue.offer(2);
queue.offer(3);
//...

Integer val = null;
while( (val = queue.poll()) != null) {
    System.out.println(val);
}

在这种情况下,它Collections.reverseOrder()提供了一个Comparator
中的元素PriorityQueue以与它们的自然顺序相反的顺序排序。

2022-08-24