> Java > java지도 시간 > Java에서 2D 배열의 전체 복사를 수행하는 방법은 무엇입니까?

Java에서 2D 배열의 전체 복사를 수행하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-21 17:34:11
원래의
767명이 탐색했습니다.

How to Perform a Deep Copy of a 2D Array in Java?

Java의 2D 배열 전체 복사본: 종합 가이드

2D 배열에서 .clone()을 사용하면 얕은 복사본이 생성될 수 있습니다. 예상치 못한 동작이 발생할 수 있습니다. 원본 배열의 새로운 독립적 복사본을 생성하는 딥 카피를 수행하려면 보다 철저한 접근 방식이 필요합니다.

System.arraycopy를 사용한 반복 딥 카피

한 가지 접근 방식 2D 부울 배열을 심층 복사하는 방법은 이를 반복하고 System.arraycopy를 사용하여 각 행을 새 배열에 복사하는 것입니다. 여기에는 새 2D 배열을 생성한 다음 원래 배열을 반복하여 각 행 요소를 새 배열의 해당 행에 요소별로 복사하는 작업이 포함됩니다.

Java 6 옵션: java.util.Arrays#copyOf

Java 6 이상을 사용하는 경우 java.util.Arrays#copyOf를 활용하여 이 프로세스를 단순화할 수 있습니다. 방법. 이 클래스는 배열을 복사하는 편리한 방법을 제공합니다.

샘플 코드:

다음 코드 샘플은 반복 함수를 사용하여 2D 부울 배열의 전체 복사를 수행하는 방법을 보여줍니다. 접근 방식:

public static boolean[][] deepCopy(boolean[][] original) {
    if (original == null) {
        return null;
    }

    final boolean[][] result = new boolean[original.length][];
    for (int i = 0; i < original.length; i++) {
        result[i] = Arrays.copyOf(original[i], original[i].length);
        // For Java versions prior to Java 6 use the next:
        // System.arraycopy(original[i], 0, result[i], 0, original[i].length);
    }
    return result;
}
로그인 후 복사

이러한 단계를 따르면 2D 부울의 깊은 복사본을 효과적으로 만들 수 있습니다. Java 배열을 사용하여 한 배열의 변경 사항이 다른 배열에 영향을 미치지 않도록 합니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿