[ [-2147483646,-2147483645],
[2147483646,2147483647] ]
Arrays.sort(points,(a,b)-> {return a[0]-b[0];});
a[0]=2147483646
b[0]=-2147483636
int 类型的取值范围是从 -2,147,483,648 到 2,147,483,647
a[0]-b[0] > 2,147,483,647 出现溢出情况
溢出导致了数值大小关系的不确定性,那么就会造成排序算法无法按照预期进行排列。因此在排序过程中避免溢出,保证数值大小关系正确性非常重要。
Arrays.sort(points,(a,b)-> {return Integer.compare(a[0], b[0]);});
可以避免溢出
或
Arrays.sort(points, new Comparator<int[]>() {
@Override
public int compare(int[] a, int[] b) {
if(a[0]<b[0]){
return -1;
}else if(a[0]>b[0]){
return 1;
}else{
return 0;
}
}
});