compartor 的 compare 方法 注意的问题
这种方式有问题的,因为 o1 - o2 可能使整型溢出,导致排序结果异常 :
Arrays.sort(input, (o1,o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o1[0] - o2[0]);
应该把 减法运算改为比较运算:
Arrays.sort(input, (o1,o2) -> {
if(o1[0] == o2[0]){
return o1[1] >= o2[1] ? 1 : -1;
}else{
return o1[0] >= o2[0] ? 1 : -1;
}
});
浙公网安备 33010602011771号