重写Array.sort()方法
输入的排序数组的形式为int[][2]
,例如 int[][] test = {{7, 0}, {4, 4}, {7, 1}, {5, 0}, {6, 1}, {5, 2}};
排序的逻辑是数组中的第一列和第二列都有序排列(升序后者降序)
重写Array.sort()方法
Arrays.sort(people, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0] == o2[0] ? o1[1] - o2[1] : o2[0] - o1[0];
}
});
代码中:o1[1] - o2[1]
表示降序排列,o2[0] - o1[0]
表示升序排列
排序后输出为:[[7, 0], [7, 1], [6, 1], [5, 0], [5, 2], [4, 4]]
使用lambda表达式重写Array.sort()方法
Arrays.sort(people, (o1, o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o2[0] - o1[0]);