自定义排序规则
方式 1(lambda)
PriorityQueue<Integer> queue = new PriorityQueue<>( (a, b) -> a - b);
上述为存有 Integer 类型的优先队列,排序规则为升序,若降序可以改为
PriorityQueue<Integer> queue = new PriorityQueue<>( (a, b) -> b - a);
还可以使用 lambda 表达式定义更复杂的排序规则
方式 2
PriorityQueue<int[]> queue = new PriorityQueue<>(k, (a, b) -> {
return nums1[a[0]] + nums2[a[1]] - nums1[b[0]] - nums2[b[1]];
});
上述方法中,k 为队列初始长度
常用方法
添加
- offer(T),加入一个元素 T 到优先队列中
取出
- poll(),取出队首元素
- peek(),返回队首元素,但不出队
7451

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



