Rumah >Java >javaTutorial >Bagaimana untuk Melaksanakan Salinan Dalam bagi Array Boolean 2D di Java?

Bagaimana untuk Melaksanakan Salinan Dalam bagi Array Boolean 2D di Java?

Barbara Streisand
Barbara Streisandasal
2024-12-19 02:55:10981semak imbas

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

Menyalin Dalam Tatasusunan 2D dalam Java

Kaedah java.lang.clone() mencipta salinan cetek tatasusunan, bermakna bahawa ia hanya menduplikasi rujukan kepada tatasusunan asal. Mengubah suai salinan masih akan menjejaskan tatasusunan asal. Salinan dalam, sebaliknya, mencipta contoh tatasusunan yang berasingan sepenuhnya, dengan set elemennya sendiri.

Melaksanakan Salinan Dalam

Untuk melaksanakan salinan mendalam bagi tatasusunan boolean[][], anda boleh mengulangi tatasusunan dan mencipta tatasusunan baharu untuk setiap baris:

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

    boolean[][] result = new boolean[original.length][];
    for (int i = 0; i < original.length; i++) {
        result[i] = Arrays.copyOf(original[i], original[i].length);
    }
    return result;
}

Untuk Java versi sebelum Java 6, anda boleh menggunakan System.arraycopy seperti yang ditunjukkan di bawah:

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

    boolean[][] result = new boolean[original.length][];
    for (int i = 0; i < original.length; i++) {
        result[i] = new boolean[original[i].length];
        System.arraycopy(original[i], 0, result[i], 0, original[i].length);
    }
    return result;
}

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Salinan Dalam bagi Array Boolean 2D di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn