二维数组的特殊排序方式

已知二维数组 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]);
        }

    }

 

posted @ 2020-11-17 10:09  进击的小渣渣!!  阅读(209)  评论(0)    收藏  举报