java二维数组排序

  • Post author:
  • Post category:java


Arrays.sort(points, (a, b) -> {
	//如果第一位相等,按第二位排序	
    if (a[0] == b[0]) return Integer.compare(a[1],b[1]);
    return Integer.compare(a[0],b[0]);
});

point为待排序数组

a,b为选取的两个比较对象


使用Integer.compare()而不用a[0]-b[0]的原因

若a[0]-b[0]的值超过2147483647,即int类型能保存的最大数的时候,值会为负数,导致排序失败。

或者也可以直接写为

(x < y) ? -1 : ((x == y) ? 0 : 1);

即Integer.compare()方法的实现



版权声明:本文为iceforg123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。