Подобные вопросы задавались, но никогда не касались 2D String Arrays, поэтому после долгой попытки я не смог найти то, что хотел. Я пытаюсь отсортировать 2D String Array в Java с помощью BubbleSort.
В качестве ввода я получаю двумерный массив (таблицу) строк и индекс «столбца», который вы должны отсортировать. Я должен отсортировать строки по значениям в указанном столбце.
Вы можете видеть первый индекс как индекс строки, а второй индекс как индекс столбца. Например, следующий массив Java и таблица соответствуют друг другу:
String[][] table = {
{"a", "b"},
{"c", "d"}
};
-
0 1
+---+---+
0 | a | b |
+---+---+
1 | c | d |
+---+---+
Чтобы продолжить в этом примере, таблица [0] [1] выдаст значение "b", поскольку это элемент в строке 0 и столбце 1.
ВАЖНО: мне не разрешено использовать какой-либо алгоритм сортировки из библиотеки Java, например Arrays.sort.
Это то, что я пробовал до сих пор:
class Solution {
public static void stableSort(String[][] table, int column) {
int i;
int j;
String temp = null;
for (i = 0; i < table.length - 1; i++) {
for (j = 0; j < table.length - 1 - i; j++) {
if (table[i][j].compareTo(table[i][j + 1]) > 0) {
temp = table[i][j];
table[i][j] = table[i][j + 1];
table[i][j + 1] = temp;
}
}
}
}
}
Я получаю ошибку Index of Bounds, которая также не работает, так как тест ожидает другой результат в таблице [0] [0]
Спасибо за вашу помощь.