匿名内部类
PriorityQueue<Integer> queue = new PriorityQueue<>(new Comparator<Integer>(){
@Override
public int compare(Integer o1, Integer o2){
//如果认为o1优先级比o2高,先出o1 compare返回<0的整数
//如果认为o2优先级比o1高,先出o2 compare返回>0的整数
//如果一样,返回0
return o2-o1;
}
});
原理就是
- 结果为
-
,返回前面的一个元素o1
- 结果为
+
,返回后面的一个元素o2
上面是将小根堆换成了大根堆,小根堆就是return o1-o2