我在整数 Java 中有优先级队列:
PriorityQueue<Integer> pq= new PriorityQueue<Integer>();
当我打电话时,pq.poll()我得到了最小的元素。
pq.poll()
问题:如何更改代码以获得最大元素?
像这样怎么样:
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以与它们的自然顺序相反的顺序排序。
Collections.reverseOrder()
Comparator
PriorityQueue