【发布时间】:2020-04-11 00:02:30
【问题描述】:
我使用 Arrays.sort() 函数对二维数组(int[][] 数组)进行排序。因为我想根据第一个元素对其进行排序。例如,{{2,3},{1,4}} 基于第一个元素,数组将为 {{1,4},{2,3}}。所以我重写了比较函数。
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2){
if(o1[0] < o2[0]){
return -1;
} else if (o1[0] > o2[0]) {
return 1;
} else {
return 0;
}
}
})
我知道这种工作。但我不明白这个比较是如何工作的。 我在想
new Comparator<int[]>
应该是
new Comparator<int[][]>
因为这是二维数组。比较函数内部应该是比较
o1[0][0] and o2[0][0]
谁能帮我理解一下?
这也是使用 Arrays.sort,我可以使用 Collections.sort 吗?有什么不同?
谢谢
【问题讨论】:
-
仅供参考:要通过比较两个
int值来获得比较值,请使用Integer.compare(o1[0], o2[0])