Menyalin Tatasusunan 2D dalam Java
Menyalin tatasusunan dua dimensi (2D) dalam Java boleh menjadi penting untuk mengekalkan kegigihan atau bekerja dengan salinan yang boleh diubah suai tanpa menjejaskan tatasusunan asal.
Masalah yang dihadapi dalam kod Java yang diberikan berpunca daripada fakta bahawa lama = semasa dan semasa = lama memberikan rujukan kepada tatasusunan 2D yang sama dan bukannya membuat salinan bebas. Akibatnya, sebarang perubahan yang dibuat kepada semasa juga ditunjukkan dalam yang lama.
Untuk mencipta salinan sebenar tatasusunan 2D, anda perlu mencipta tatasusunan baharu dan menyalin setiap elemen ke dalamnya. Ini boleh dicapai menggunakan pendekatan berasaskan gelung atau dengan memanfaatkan API aliran yang diperkenalkan dalam Java 8.
Kaedah API Strim:
<code class="java">int[][] copy = Arrays.stream(matrix).map(int[]::clone).toArray(int[][]::new);</code>
Dalam contoh ini, peta (int[]::clone) mencipta salinan baharu setiap baris dalam tatasusunan matriks. Kaedah toArray(int[][]::new) kemudian mencipta tatasusunan 2D baharu dengan baris yang disalin.
Kaedah Berasaskan Gelung:
<code class="java">int[][] copy = new int[current.length][current[0].length]; for (int i = 0; i < current.length; i++) { for (int j = 0; j < current[i].length; j++) { copy[i][j] = current[i][j]; } }</code>
Dalam pendekatan ini, tatasusunan 2D baharu (salinan) dengan dimensi yang sama seperti semasa dicipta. Kemudian, gelung bersarang akan berulang ke atas setiap elemen dalam semasa dan menyalin nilainya ke kedudukan yang sepadan dalam salinan.
Setelah salinan dibuat, lama boleh diberikan kepada tatasusunan yang disalin (lama = salinan) manakala semasa boleh terus dikemas kini tanpa menjejaskan lama.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Salinan Benar Tatasusunan 2D di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!