Я использовал функцию Arrays.sort () для сортировки 2d массива (массив int [] []). Так как я хочу отсортировать его по первому элементу. Например, {{2,3}, {1,4}} основываются на 1-м элементе массива: {{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[][]>
, так как это 2d массив. и внутри функции сравнения должно быть сравнение
o1[0][0] and o2[0][0]
Может кто-нибудь помочь мне понять это?
Также это использует Arrays.sort, могу ли я использовать Collections.sort? что отличается между этим?
Спасибо