Java Arrays.sort()

qq_28808697發表於2020-12-09

1、對於基本型別的陣列的排序是無法重寫Comparator來進行排序的,如下所示, 泛型引數設定成int時報錯:Type argument cannot be of primitive type

        int[] b = {-1, 2, 3};
        Arrays.sort(b, new Comparator<int>() { // 報錯:Type argument cannot be of primitive type
            @Override
            public int compare(int o1, int o2) {
                return 0;
            }
        });

2、Arrays.sort()可以對Integer陣列排序, 例如:

對陣列a按照絕對值大小降序 排序

        Integer[] a = {-1, 2, 3};
        Arrays.sort(a, (i, j) -> (Math.abs(j) - Math.abs(i))); //排序後,a為3, 2, -1

3、Arrays.sort()可以對int型二維陣列排序,例如:

對陣列c按照第二維降序 排序, 

        int[][] c = {{1,2}, {3,4}};
        Arrays.sort(c, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                return o2[1] - o1[1];
            }
        }); // 排序後,c為 {{3, 4}, {1, 2}}

 

相關文章