java二维数组怎么排序

对于二维数组的排序,Java 提供了多种方法,包括:使用 Arrays.sort() 排序行(基本或包装类型)使用 Comparator 排序行(自定义对象)使用 Stream API 排序行(简洁方式)使用第三方库(如 Apache Commons Lang)进行更复杂的排序操作

Java 二维数组如何排序

开门见山:
Java 中对二维数组进行排序有几种方法,具体取决于数组元素的类型和所需的排序顺序。

方法一:使用 Arrays.sort() 排序行
对于包含基本类型(例如 int、double)或包装类型(例如 Integer、Double)的二维数组,可以使用 java.util.Arrays.sort() 方法对每一行进行排序。

int[][] arr = {
    {1, 3, 5},
    {2, 4, 6},
    {7, 9, 11}
};

for (int[] row : arr) {
    Arrays.sort(row);
}

方法二:使用 Comparator 排序行
对于包含自定义对象的二维数组,可以使用 java.util.Comparator 来指定排序顺序。

class MyComparator implements Comparator {
    @Override
    public int compare(int[] a, int[] b) {
        // 比较两行元素的和
        return Integer.compare(Arrays.stream(a).sum(), Arrays.stream(b).sum());
    }
}

int[][] arr = {
    {1, 3, 5},
    {2, 4, 6},
    {7, 9, 11}
};

Arrays.sort(arr, new MyComparator());

方法三:使用 Stream API 排序行
Java 8 的 Stream API 提供了更简洁的方式对二维数组进行排序。

int[][] arr = {
    {1, 3, 5},
    {2, 4, 6},
    {7, 9, 11}
};

arr = Arrays.stream(arr)
    .sorted(Comparator.comparingInt(a -> Arrays.stream(a).sum()))
    .toArray(i

nt[][]::new);

方法四:使用第三方库
还可以使用 Apache Commons Lang 等第三方库来对二维数组进行更复杂的排序操作。