(最简单但是不易理解)方法三:
public static void main(String[] args) {
//lambda表达式,java8之后才有的新东西,相当于一个匿名方法
//代码省略太多以至于不好理解,但是实现方便
//三种方式分别逐步进行简便理解
//1
PriorityQueue pQ = new PriorityQueue<>((Integer o1, Integer o2) -> {
return o2 - o1;
});
//2
PriorityQueue pQ1 = new PriorityQueue<>((Integer o1, Integer o2) -> o2 - o1);
//3
PriorityQueue pQ2 = new PriorityQueue<>(( o1, o2) -> o2 - o1);
pQ2.offer(4);
pQ2.offer(0);
pQ2.offer(3);
pQ2.offer(8);
pQ2.offer(5);
//库的优先队列是小堆,我们将其变为大堆
while (!pQ2.isEmpty()) {
System.out.print(pQ2.poll() + " ");
}
}
运行结果:
8 5 4 3 0
TopK问题:
**今天我们主要说TopK中的其中一种解决思想,一会有机会介绍第二种。
我们知道如果建立的优先