Сохранение изменений 2D-массива с дублированием
В Java при создании копий объектов очень важно понимать поведение присваивания ссылок. В данном сценарии определены два 2D-массива с именами current и old, а также методы для копирования содержимого.
Метод old() присваивает текущему массиву значение old. Однако это просто передает ссылку на тот же массив в памяти. Когда в текущий массив вносятся обновления, old также отражает эти изменения, поскольку оба они указывают на один и тот же базовый массив.
Метод Keepold() пытается присвоить старый массив текущему. Опять же, это только обновляет ссылку, не затрагивая исходный текущий массив. В результате при обновлении текущего содержимого старое содержимое остается неизменным.
Чтобы создать настоящую копию 2D-массива в Java, необходимо вручную скопировать каждый элемент. Альтернативно, для более эффективного копирования вы можете использовать метод Arrays.stream().map()...toArray(), который использует API потоков для создания клона каждой строки и сборки их в новый массив.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3