【发布时间】:2022-01-26 13:46:26
【问题描述】:
我想对二维数组进行排序
int[][] a1 = new int[][2];
内容是
6, 8
5, 7
1, 3
2, 4
我的预期输出是:
1, 3
2, 4
5, 7
6, 8
我发现我们可以使用 Double.compare() 方法,
Arrays.sort(a1,(a,b)->Double.compare(a[0],b[0]));
这确实对数组进行了我想要的排序,但我不知道它是如何工作的? 谁能解释一下
【问题讨论】:
-
Arrays.sort() "根据指定的比较器产生的顺序对指定的对象数组进行排序。"
-
应该使用
Integer.compare(),因为你在比较整数,而不是双精度...... -
你也可以像这样使用
Comparator.comparingInt:Arrays.sort(a1, Comparator.comparingInt(arr -> arr[0]));