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!