Я только что получил бит, используя .clone() на моем 2d boolean массиве, думая, что это была глубокая копия.
Как я могу выполнить глубокую копию моего boolean[][] массива?
Должен ли я выполнить цикл по нему и выполнить серию System.arraycopy's?
Переведено автоматически
Ответ 1
Да, вам следует выполнить итерацию по 2D-логическому массиву, чтобы выполнить его глубокое копирование. Также посмотрите на java.util.Arrays#copyOf методы, если вы используете Java 6.
Я фанат утилиты Arrays. У нее есть метод copyOf, который сделает глубокую копию для вас 2d-массива, поэтому вам нужно что-то вроде этого:
//say you have boolean[][] foo; boolean[][] nv = newboolean[foo.length][foo[0].length]; for (inti=0; i < nv.length; i++) nv[i] = Arrays.copyOf(foo[i], foo[i].length);
Ответ 4
Мне удалось создать глубокую копию рекурсивного массива. Кажется, это работает довольно хорошо даже для многомерных массивов с различной длиной измерения, например