java中调用优先级队列如下,但默认生成的是小顶堆,即堆顶是最小的。
// 小顶堆
PriorityQueue<Integer> pq = new PriorityQueue<>();
生成大顶堆的方法
PriorityQueue<Integer> pq = new PriorityQueue<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
});
上面这个很好理解,就是通过Comparator这个借口,将compare方法覆写了,这样调换顺序后,小顶堆就变成了大顶堆。