java可以通过优先队列定义堆,默认是小根堆。
PriorityQueue<Integer> queue = new PriorityQueue<>);
大根堆
2.1 标准写法
PriorityQueue<Integer> queue = new PriorityQueue<>new Comparator<Integer>) {
@Override
public int compareInteger o1, Integer o2) {
return o2.compareToo1);
}
});
2.2 简化版
PriorityQueue<Integer> queue = new PriorityQueue<>o1, o2)->o2.compareToo1));
或者
Queue<Integer> queue = new PriorityQueue<>Collections.reverseOrder));
queue.offer12);
queue.offer15);
queue.offer10);
while!queue.isEmpty)) {
int t = queue.poll);
System.out.printlnt);
}
15
12
10