我有一个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));