在java中没有一个现成的大小顶堆的数据结构,但可以用PriorityQueue类代替。
PriorityQueue默认是升序的,因此可以模拟小顶堆最小值始终在队列的最前面,如果要模拟大顶堆,需要重新定义Comparator方法:
java">PriorityQueue<Integer> maxHeap = new PriorityQueue<>((a, b) -> b-a);
maxHeap.add(3);
maxHeap.add(1);
maxHeap.add(4);
System.out.println(maxHeap.peek()); // 输出 4,最大元素