二维数组的特殊排序方式
已知二维数组 num[h][k], 实现目标:
1.按照 h降序,k升序 进行排序
(PS: h降序,当h相同的情况下,按照k升序进行排列)
原数组:[ [7,0], [4,4], [7,1], [5,0], [6,1], [5,2] ] 排序后的结果: [ [7,0], [7,1], [6,1], [5,0], [5,2], [4,4] ]
Arrays.sort(num, (o1, o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o2[0] - o1[0]);
2.按照 h升序,k降序 进行排序
(PS: h升序,当h相同的情况下,按照k降序进行排列)
原数组:[ [7,0], [4,4], [7,1], [5,0], [6,1], [5,2] ] 排序后的结果: [ [4,4], [5,2], [5,0], [6,1], [7,1], [7,0] ]
Arrays.sort(num, (o1, o2) -> o1[0] == o2[0] ? o2[1] - o1[1] : o1[0] - o2[0]);
public void especialSort(int[][] num) { //num [h][k] 最终实现按照h降序,k升序排序 //Arrays.sort(num, (o1, o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o2[0] - o1[0]); ////num [h][k] 最终实现按照h升序,k降序排序 Arrays.sort(num, (o1, o2) -> o1[0] == o2[0] ? o2[1] - o1[1] : o1[0] - o2[0]); //打印查看结果 for (int i = 0; i < num.length; i++) { for (int j = 0; j < num[0].length; j++) System.out.print(num[i][j]); } }

浙公网安备 33010602011771号