- java中的PriorityQueue默认情况下是小顶堆
Queue<Integer>A=new PriorityQueue<>()
- 下面是大顶堆的写法
A=new PriorityQueue<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// TODO 自动生成的方法存根
return o2-o1;
}
});
- 兰姆它,当然还有更简便的写法
B=new PriorityQueue<>((x,y) -> (y-x));
其实这两个大顶堆的写法实际都是一样的,都是传入一个比较器,只不过上面那个是匿名内部类型的方式,下面这个是lamdba表达式的写法。
这篇博客探讨了Java中PriorityQueue的使用,重点在于如何将其从默认的小顶堆转换为大顶堆。通过提供自定义的Comparator或使用Lambda表达式,可以轻松实现这一转变。示例代码展示了两种不同的实现方式,分别是匿名内部类和Lambda表达式,两者功能相同,但Lambda表达式更为简洁。
2587

被折叠的 条评论
为什么被折叠?



