Для моего назначения кодирования мне нужно изменить 2D-массив так, чтобы пара заменялась (n - 1) -м элементом списка. Предполагается, что пара - это массив из двух чисел, который появляется где-то в списке. Таким образом, когда этот метод будет выполнен, первые n - 1 элемент списка будут такими же, как первые n элементов старой версии, но с удаленной парой и с потенциально различным порядком элементов. Для создания метода remove, который удаляетданная пара из 2D массива.
Вот один из тестов
@Test
public void removeRemovesPairFromEntireList() {
int[][] list = { { 1, 2 }, { 3, 4 }, { 4, 3 }, { 5, 8 } };
// Remove 3, 4 from the whole list
Maze.remove(new int[] { 3, 4 }, list, list.length);
assertEquals("[[1, 2], [5, 8], [4, 3], [5, 8]]", Arrays.deepToString(list));
}
Репетитор, который помогал мне, сказал мне создать новый список, в который вы добавляете все пары, которые хотите сохранить, но я не знаюесли я на правильном пути или если есть гораздо более простой способ сделать это. Это то, что я имею до сих пор.
public static void remove(int[] pair, int[][] list, int n) {
int[][] listNew = new int [n-1][2];
for(int i=0;i<n-1;i++) {
if (list[i][0] != pair[0] && list[i][1] != pair[1]) {
listNew[i][0] = list[i][0];
listNew[i][1] = list[i][1];
} else {
listNew[i][0] = list[n - 1][0];
listNew[i][1] = list[n - 1][1];
}
}
}
Помощь будет высоко ценится.