У меня есть двумерный массив, который имеет размеры myArray[x][3]
. Мне нужно отсортировать массив на основе [x][0]
. Я использовал Arrays.sort(myArray);
. Это работало, однако, массив в то время был одномерным массивом myArray[x]
. Затем я передумал и превратил его в двумерный массив. Он заполнен целыми числами от 1 до 9. Я искал метод clear для сортировки 2-мерных массивов и не могу найти простых объяснений. Пожалуйста, помогите.
Спасибо;
Ice
Хорошо, вот код:
public static void sortArray(int myArray[][]){
Arrays.sort(myArray, new Comparator<Integer[]>(){
@Override
public int compare(Integer[] o1, Integer[] o2) {
return o1[0].compareTo(o2[0]);
}
});
Это сработало?
ОК, здесь проблема. Сортированный массив начинается с несортировки, например:
3 - 0 - 0
4 - 0 - 1
5 - 0 - 2
6 - 0 - 3
3 - 0 - 4
Первый столбец [0][x]
- это значение, второй столбец [1][x]
- это число полей массива, а последний столбец [2][x]
- это фактический номер столбца в массиве. Общий метод, берет всю строку из исходного двухмерного массива и загружает ее в массив размером 3 на x, а затем сортирует массив по столбцу [0][x]
. Вот результат после вызова функции сортировки:
0 - 0 - 3
0 - 1 - 4
0 - 2 - 5
0 - 3 - 6
0 - 4 - 3
Каким-то образом метод, который я скопировал и вставил, заменяет числа, похоже, сортировка неправильная. Одинаковое System.out.print
используется на обоих выходах.