Cara Membuat Salinan Berkesan Tatasusunan 2D dalam Java
Ramai pengaturcara menghadapi kesukaran apabila cuba meniru tatasusunan 2D di Jawa. Tugas ini memerlukan pengendalian yang tepat untuk memastikan penyalinan yang tepat tanpa mengubah suai tatasusunan asal.
Untuk menangani cabaran ini, pertimbangkan untuk memanfaatkan fungsi Java asli clone() dan System.arraycopy(), yang menawarkan penyelesaian yang cekap dan boleh dipercayai.
Menggunakan klon() untuk Penyalinan Tatasusunan 2D
Kaedah klon() mencipta salinan cetek tatasusunan asal, mengekalkan struktur data asas. Kaedah ini beroperasi seperti berikut:
<code class="java">int[][] myInt = new int[matrix.length][]; for (int i = 0; i < matrix.length; i++) myInt[i] = matrix[i].clone();</code>
Pendekatan ini mencipta tatasusunan 2D baharu dengan dimensi yang sama seperti yang asal. Setiap baris dalam tatasusunan klon ialah rujukan yang berbeza kepada baris yang sepadan dalam tatasusunan asal.
Menggunakan System.arraycopy() untuk Penyalinan Tatasusunan 2D
Sebagai alternatif, Sistem .arraycopy() menawarkan penyelesaian yang lebih cekap, terutamanya untuk tatasusunan yang besar. Ia beroperasi seperti berikut:
<code class="java">int[][] myInt = new int[matrix.length][]; for (int i = 0; i < matrix.length; i++) { int[] aMatrix = matrix[i]; int aLength = aMatrix.length; myInt[i] = new int[aLength]; System.arraycopy(aMatrix, 0, myInt[i], 0, aLength); }</code>
Pendekatan ini melibatkan mencipta tatasusunan 2D baharu dan kemudian menggunakan System.arraycopy() untuk menyalin setiap baris daripada tatasusunan asal ke dalam baris yang sepadan dalam tatasusunan baharu.
Kedua-dua klon() dan System.arraycopy() menyediakan penyelesaian yang berkesan dan intuitif untuk menyalin tatasusunan 2D di Java. Semasa clone() mencipta salinan cetek, System.arraycopy() menawarkan kecekapan yang lebih baik dan kurang terdedah kepada ralat disebabkan oleh pelaksanaan asalnya.
Atas ialah kandungan terperinci Tajuk terbaik yang menangkap format soalan-jawapan dan intipati artikel ialah: Bagaimanakah Saya Menyalin Array 2D dengan Cekap di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!