抽象方法
compare
int compare(T o1, T o2);
int compare(T o1, T o2) 是“比较o1和o2的大小”。返回“负数”,意味着“o1比o2小”;返回“零”,意味着“o1等于o2”;返回“正数”,意味着“o1大于o2”。
前 K 个高频元素int[] 的第一个元素代表数组的值,第二个元素代表了该值出现的次数
PriorityQueue
public int compare(int[] m, int[] n) {
return m[1] - n[1];
}
});
解释:优先队列为最小堆,假设m[1]-n[1]大于0,对应m[1]>n[1],m>n,即m数组在二叉堆中排在n的下面。而m[1]>n[1],说明m出现的次数比n多,此时为最小堆
PriorityQueue
解释:lamda表示重写compare方法
public int compare(int[] a, int[] b) {
return b[1] - a[1];
}
优先队列为最小堆,假设b[1]-a[1]大于0,对应b[1]>a[1],a>b,即a数组在二叉堆中排在b数组的下面,而b[1]>a[1]说明b出现的次数比a多,此时为最大堆。



