PriorityQueue 小根堆 数据结构

 

1. 简单使用

// 默认是小跟堆排序,也就是头是最小的
PriorityQueue<Integer> ascPriorityQueue = new PriorityQueue<>();
ascPriorityQueue.add(2);
ascPriorityQueue.add(7);
ascPriorityQueue.add(6);
// 默认头部 弹出最小的值
System.out.println(ascPriorityQueue.peek());
// 2

2. 实现大根堆
// 实现大跟堆,也就是默认弹出最大的那个
PriorityQueue<Integer> descPriorityQueue = new PriorityQueue<>(new IntArrComparator());
descPriorityQueue.add(2);
descPriorityQueue.add(7);
descPriorityQueue.add(6);
// 默认头部 弹出最大的值
System.out.println(ascPriorityQueue.peek());
// 7

// 比较器 倒叙排列,谁小往后放
public static class IntArrComparator implements Comparator<Integer> {

@Override
public int compare(Integer o1, Integer o2) {
if (o1 < o2) {
return 1;
} else if (o1 >= o2) {
return -1;
}
return 0;
}
}




posted @ 2023-03-18 17:17  Minde  阅读(47)  评论(0)    收藏  举报