Rumah >Java >javaTutorial >Bagaimana untuk Menyalin Dalam Array Boolean 2D di Java?

Bagaimana untuk Menyalin Dalam Array Boolean 2D di Java?

Patricia Arquette
Patricia Arquetteasal
2024-12-26 13:38:10407semak imbas

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

Deep Copying 2D Arrays dalam Java

Di Java, mengklonkan tatasusunan 2D menggunakan kaedah clone() tidak menghasilkan salinan dalam. Akibatnya, perubahan yang dibuat pada tatasusunan klon mungkin secara tidak sengaja menjejaskan tatasusunan asal. Artikel ini meneroka kaedah untuk melaksanakan salinan dalam tatasusunan boolean 2D.

Lelaran Melalui Tatasusunan

Satu pendekatan ialah dengan mengulang secara manual ke atas tatasusunan dan mencipta yang baharu tatasusunan dengan menyalin nilai. Untuk setiap tatasusunan dalaman, anda boleh menggunakan System.arraycopy() untuk memastikan salinan dalam.

Menggunakan Java 6 Arrays.copyOf()

Jika anda menggunakan Java 6 atau lebih baru, pertimbangkan untuk menggunakan kaedah Arrays.copyOf(). Kaedah ini boleh digunakan untuk membuat salinan dalam tatasusunan jenis primitif, termasuk tatasusunan boolean:

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);
    }
    return result;
}

Kod ini berulang ke atas tatasusunan asal, mencipta tatasusunan baharu untuk setiap tatasusunan dalam dan menggunakan Arrays.copyOf () untuk menyalin nilai. Ini memastikan penciptaan salinan dalam, di mana pengubahsuaian pada tatasusunan baharu tidak menjejaskan tatasusunan asal.

Atas ialah kandungan terperinci Bagaimana untuk Menyalin Dalam 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