我可以在没有比较器功能的情况下对2D阵列进行排序吗



我有一个2D数组,我想排序的值在数组[0][0]中。。。array[0][n]位置。我可以只调用Arrays.sort(array)而不实现比较器函数吗?

感谢

是的,你可以做到。下次试试看。逐行循环遍历数组,然后对每个数组进行单独排序。

int[][] array = new int[5][10];
for (int i = 0; i < array.length; i++) 
{
    array[i] = Arrays.sort(array[i])
}

以下是Arrays.sort的if文档,以获取有关java.util.Arrays类中方法的更多信息。

要对数组进行排序,有几种方法可以在没有Comparator的情况下进行,但Comparator是最简单的方法:

在Java 8:中

String[][] table = {{"5", "A"}, {"2", "B"}, {"4", "C"}, {"1", "D"}, {"3", "E"}};
Arrays.sort(table, Comparator.comparingInt(arr -> Integer.parseInt(arr[0])));
System.out.println(Arrays.deepToString(table)); 

在早期版本中:

String[][] table = {{"5", "A"}, {"2", "B"}, {"4", "C"}, {"1", "D"}, {"3", "E"}};
Arrays.sort(table, new Comparator<String[]>() {
    @Override
    public int compare(String[] arr1, String[] arr2) {
        return Integer.compare(Integer.parseInt(arr1[0]), Integer.parseInt(arr2[0]));
    }
});
System.out.println(Arrays.deepToString(table));

最新更新