Arrays.sort(people, (a, b) -> a[0] != b[0] ? a[0] - b[0] : a[1] - b[1]);
时间: 2023-05-19 14:04:10 浏览: 116
这是一个使用 Java 语言中的 Arrays.sort() 方法对一个二维数组进行排序的代码,其中使用了一个 lambda 表达式作为比较器。具体来说,该比较器首先按照每个元素的第一维进行升序排序,如果第一维相同,则按照第二维进行升序排序。
相关问题
Arrays.sort(people, (a, b) -> a[0] != b[0] ? a[0] - b[0] : a[1] - b[1]);如何理解这行代码
这行代码使用了Java 8中的Lambda表达式,用于对一个二维数组people进行排序。其中,Lambda表达式用于指定排序规则,即先按第一列进行升序排序,如果第一列相同则按第二列进行升序排序。
具体解释如下:
- Arrays.sort(people, ...):使用Arrays类中的sort方法对people数组进行排序。
- (a, b) -> a[0] != b[0] ? a[0] - b[0] : a[1] - b[1]:Lambda表达式,用于指定排序规则。其中,a和b分别代表数组中的两个元素,即二维数组中的一维数组。Lambda表达式中的三元运算符(a[0] != b[0] ? a[0] - b[0] : a[1] - b[1])表示:如果a和b的第一个元素不相等,则按第一个元素升序排序;如果a和b的第一个元素相等,则按第二个元素升序排序。
- 注意:这里的“升序”指的是从小到大排序。如果需要从大到小排序,只需将a[0] - b[0]和a[1] - b[1]改为b[0] - a[0]和b[1] - a[1]即可。
Arrays.sort(people, (a, b) -> a[0] != b[0] ? a[0] - b[0] : a[1] - b[1]);不用lambda表达式应该怎么写
Arrays.sort(people, new Comparator<int[]>() {
@Override
public int compare(int[] a, int[] b) {
if (a[0] != b[0]) {
return a[0] - b[0];
} else {
return a[1] - b[1];
}
}
});
阅读全文