Java Maxheap与priorityqueue混淆

Java Maxheap与priorityqueue混淆,java,heap,priority-queue,max-heap,minmax-heap,Java,Heap,Priority Queue,Max Heap,Minmax Heap,假设我们希望根据该值对hashmap进行排序。为此,我们使用比较器实现了一个优先级队列。因此,生成的pq从索引0到末尾从最大到最小排序 代码如下: PriorityQueue<Map.Entry<Integer, Integer>> pq = new PriorityQueue<Map.Entry<Integer, Integer>>( new Comparator<Map.Entry<Integer,

假设我们希望根据该值对hashmap进行排序。为此,我们使用比较器实现了一个优先级队列。因此,生成的pq从索引0到末尾从最大到最小排序

代码如下:

PriorityQueue<Map.Entry<Integer, Integer>> pq = new PriorityQueue<Map.Entry<Integer, Integer>>(
                new Comparator<Map.Entry<Integer, Integer>>() {
                    @Override
                    public int compare(Entry<Integer, Integer> o1, Entry<Integer, Integer> o2) {
                        return o2.getValue() - o1.getValue();
                    }
                });
PriorityQueue pq=新的PriorityQueue(
新比较器(){
@凌驾
公共整数比较(条目o1、条目o2){
返回o2.getValue()-o1.getValue();
}
});

然而,有人说它是一个maxheap,我知道heap只是父值大于子值,但我不明白为什么它是一个maxheap?它只是在优先级队列中实现比较器?这与堆有什么关系?

java中优先级队列的内部结构是堆。
此比较器将用于与优先级队列中的父值进行比较。