>  기사  >  Java  >  Java에서 2차원 배열의 전체 복사본을 만드는 방법은 무엇입니까?

Java에서 2차원 배열의 전체 복사본을 만드는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-01 06:18:02360검색

How to Create a Deep Copy of a Two-Dimensional Array in Java?

Java에서 2차원 배열 복사

한 배열을 다른 배열에 할당하면 단순히 참조가 생성되므로 Java에서 다차원 배열을 복사하는 것은 까다로울 수 있습니다. 실제 복사본이 아닌 원본 데이터에. 실제 복제본을 만들려면 새 메모리를 할당하고 요소를 개별적으로 복사해야 합니다.

귀하의 경우에는 old()와 keepold()라는 두 가지 메서드가 있어 현재 배열을 이전 배열로 복사하고 그 반대의 경우도 마찬가지입니다. 그 반대. 그러나 현재를 업데이트하면 둘 다 동일한 기본 데이터를 참조하기 때문에 변경 사항이 이전에도 반영됩니다.

실제 복사본을 만들려면 다음 단계를 사용할 수 있습니다.

  1. 새 배열 만들기: 원본과 동일한 크기의 새로운 2차원 배열을 할당합니다.
  2. 요소 복사: 원본 배열을 반복하고 할당합니다. 각 요소를 새 배열의 해당 위치에 배치합니다.

스트림 API(Java 8)를 사용하면 이 프로세스를 단순화할 수 있습니다.

<code class="java">int[][] copy = Arrays.stream(matrix).map(int[]::clone).toArray(int[][]::new);</code>

이 줄에서는 map()을 사용합니다. 각 행에 대해 새 배열을 생성하는 메소드, 각 행을 복사하는 clone() 메소드, 마지막으로 복제된 행에서 새로운 2차원 배열을 생성하는 toArray() 메소드를 사용합니다.

위 내용은 Java에서 2차원 배열의 전체 복사본을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.