Java에서 다차원 배열을 조작할 때 기존 배열의 복사본을 만들어야 하는 경우가 종종 발생합니다. 이러한 배열을 복사하는 최적의 접근 방식을 이해하는 것은 데이터 무결성을 유지하고 함정을 피하는 데 중요합니다.
주어진 시나리오에서 정수의 2D 배열인 행렬은 편집을 위해 로컬 변수 myInt에 복사됩니다. 목적. 수동 접근 방식도 가능하지만 오류가 발생하기 쉽고 비효율적일 수 있습니다.
대신 Java에서는 2D 배열 복사를 위한 두 가지 권장 기술인 clone() 또는 System.arraycopy 사용을 제공합니다. ().
clone() 메서드는 배열의 얕은 복사본을 생성합니다. 여기서 원본 배열과 복사본은 동일한 기본 요소를 참조합니다. 행렬과 같은 2D 배열의 경우 다음이 포함됩니다.
<code class="java">int[][] myInt = new int[matrix.length][]; for (int i = 0; i < matrix.length; i++) myInt[i] = matrix[i].clone();</code>
이 접근 방식은 간단하지만 요소 자체가 아닌 참조의 복사본만 생성합니다. 행렬의 요소가 수정되면 myInt의 해당 요소도 영향을 받습니다.
System.arraycopy() 메서드는 전체 복사를 수행하여 복사합니다. 참조가 아닌 요소의 실제 값입니다. 2D 배열의 경우:
<code class="java">int[][] myInt = new int[matrix.length][]; for (int i = 0; i < matrix.length; i++) { int[] aMatrix = matrix[i]; int aLength = aMatrix.length; myInt[i] = new int[aLength]; System.arraycopy(aMatrix, 0, myInt[i], 0, aLength); }</code>
이 방법은 각 행에 대해 새 배열을 생성하므로 약간 더 많은 작업이 필요하지만 myInt가 독립적인 복사본임을 보장합니다. myInt에 대한 모든 수정 사항은 행렬에 영향을 미치지 않습니다.
2D 배열을 수동으로 복사하는 것도 가능하지만 효율성을 위해 clone() 또는 System.arraycopy() 메서드를 사용하는 것이 좋습니다. , 정확성 및 편의성. 이렇게 하면 복사된 배열(myInt)이 원래 배열(행렬)에서 적절하게 격리되어 의도하지 않은 부작용의 위험 없이 독립적인 수정이 가능해집니다.
위 내용은 Java에서 2D 배열을 어떻게 효율적으로 복제합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!