Мне нужно сбросить размер массива от w [i] [j] [q] [k] до w [i + 2] [j + 2 ] [Q] [к]. Я не хочу использовать массив списков, так как мне придется менять большие части моей программы. В некоторых потоках я читал, что можно создать новый массив нужного размера и скопировать содержимое из исходного массива в новый массив с помощью java.lang.System.arraycopy (...).Как изменить размер многомерного массива без использования arraylist (java)
Я попытался это следующим образом, но это не работает с моим подходом:
int [][][][] w = new int [18][18][[Main.V+1][Main.k];
(...)
int[][][][] wNew = new int[20][20][Main.V+1][Main.k];
for(int i=0; i<wNew.length; i++){
for(int j=0; j<wNew[0].length; j++){
for(int q=0; q<wNew[0][0].length; q++){
for(int k=0; k<wNew[0][0][0].length; k++){
System.arraycopy(w, 0, wNew, 0, 18);
}
}
}
}
w = wNew;
(...)
при обработке массива на добавленных позиций, java.lang.ArrayIndexOutOfBoundsException: 18 происходит (пример ниже:
w[0][19][1][0] = 1; (this line now causes an error)
** Как ** это не работает с вашим подходом *? –
Я добавил сообщение об ошибке. – Hendrik