値に基づいてハッシュマップをソートしたいとします。これを行うには、コンパレータを使用して priorityQueue を実装します。その結果、結果の 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();
}
});
しかし、誰かがそれは maxheap だと言いました。ヒープは単に親の値が子の値よりも大きいことは理解していますが、なぜ maxheap なのか理解できませんか? コンパレーターをpriorityQueueに実装しているだけですか?これはヒープとどのように関係していますか?