Java에서 2D 배열을 복사하는 방법
질문:
2D 배열이 있습니다. 편집을 위해 메서드의 지역 변수에 복사하려는 행렬이라는 배열입니다. 완전한 사본을 생성하는 가장 효율적이고 오류 없는 방법은 무엇입니까?
답변:
Java에서 2D 배열을 복사하는 데 권장되는 두 가지 방법이 있습니다.
clone() 사용:
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>
System.arraycopy() 사용:
System.arraycopy() 메서드는 다음과 같습니다. 2차원 배열을 복사하는데 사용됩니다. 새 배열을 생성하고 각 요소를 수동으로 복사해야 합니다.
<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>
장점:
두 방법 모두 배열을 수동으로 복사하는 것보다 더 빠르고 오류가 발생할 가능성이 적습니다. System.arraycopy()는 네이티브 코드로 구현되기 때문에 특히 효율적입니다.
참고:
경우에 따라 배열의 얕은 복사본만 필요할 수도 있습니다. , 여기서 복사본의 수정된 요소는 원본 배열에 반영됩니다. 얕은 복사본의 경우 간단히 배열을 직접 할당할 수 있습니다(예: int[][] myInt = Matrix;). 단, 편집 목적으로는 권장하지 않습니다.
위 내용은 Java에서 2D 배열을 효율적이고 안전하게 복사하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!