
Penyelesaian kepada masalah menyalin tatasusunan 2D tidak semudah menyalin tatasusunan 1D kerana hanya menyalin rujukan kepada tatasusunan dalam tidak akan menghasilkan salinan dalam subarray itu sendiri. Terdapat beberapa pendekatan untuk menyelesaikan masalah ini, dan kami akan membincangkan satu kaedah sedemikian secara terperinci, pemeriksaan langkah demi langkah kod, dan pelaksanaannya.
Mula-mula, mari buat fungsi yang menyalin tatasusunan 2D:
public static int[][] copy2DArray(int[][] original) {
int[][] copy = new int[original.length][];
untuk (int i = 0; i < original.length; i++) { copy[i] = Arrays.copyOf(original[i], original[i].length); } pulangkan salinan; } [/code] Dalam kod di atas, kita mulakan dengan mentakrifkan fungsi yang dipanggil `copy2DArray` yang mengambil tatasusunan integer 2D, bernama **original**, sebagai parameternya. Selepas mentakrifkan fungsi, kami kemudian mencipta tatasusunan 2D baharu, dipanggil **salinan**, dengan panjang yang sama dengan tatasusunan asal. Kami kemudiannya menggunakan gelung for untuk lelaran melalui elemen tatasusunan asal dan menyalinnya ke tatasusunan baharu menggunakan kaedah `Arrays.copyOf()` daripada perpustakaan `java.util.Arrays`. Kaedah ini mencipta salinan subarray yang mendalam. Akhir sekali, kami mengembalikan salinan tatasusunan 2D.
Memahami Tatasusunan 2D
Di Jawa, **tatasusunan 2D** pada asasnya ialah tatasusunan. Ia boleh digambarkan sebagai jadual dengan baris dan lajur. Elemen boleh diakses menggunakan dua indeks: satu untuk baris dan satu lagi untuk lajur. Apabila bekerja dengan tatasusunan 2D di Java, adalah penting untuk menjejaki kedua-dua indeks, supaya anda boleh mengakses dan memanipulasi data dengan betul.
- Tatasusunan 2D dibuat menggunakan sintaks berikut:
`dataType[][] arrayName = new dataType[rowSize][columnSize];` - Elemen dalam tatasusunan 2D boleh diakses dengan dua indeks: `arrayName[row][column];`
- Lelaran melalui tatasusunan 2D biasanya melibatkan gelung bersarang.
Sebelum menyelam lebih jauh salin tatasusunan dalam 2D, adalah penting untuk memahami mengapa penting untuk membuat salinan dalam subarray. Salinan cetek hanya akan menyalin rujukan kepada subarray, dan sebarang perubahan yang dibuat kepada yang asal juga akan menjejaskan salinan. Dengan mencipta salinan dalam, kami memastikan bahawa perubahan dalam satu tatasusunan tidak menjejaskan yang lain.
Pustaka Java.util.Arrays
Dalam penyelesaian kami, kami menggunakan perpustakaan `java.util.Arrays`, yang menyediakan kaedah utiliti yang berguna untuk bekerja dengan tatasusunan. Untuk masalah khusus menyalin tatasusunan 2D, kami menggunakan kaedah `Arrays.copyOf()` untuk mencipta salinan dalam subbarray.
- Kaedah `Arrays.copyOf()` mencipta salinan dalam tatasusunan asal. Ia memerlukan dua parameter: tatasusunan asal dan panjang tatasusunan baharu.
- Kaedah berguna lain dalam pustaka ini termasuk `Arrays.fill()`, `Arrays.sort()` dan `Arrays.binarySearch()`.
Kesimpulannya, menyalin tatasusunan 2D di Jawa memerlukan salinan dalam untuk mengelakkan perubahan pada tatasusunan asal daripada menjejaskan salinan. Kami menunjukkan penyelesaian menggunakan kaedah `Arrays.copyOf()` daripada pustaka `java.util.Arrays` dan fungsi yang dicipta adalah cekap dan mudah difahami. Dengan pemahaman kami yang lebih mendalam tentang tatasusunan 2D, perpustakaan Java.util.Arrays dan manipulasi tatasusunan, kami kini boleh menangani cabaran lain dengan lebih yakin dan penyelesaian yang lebih mantap di Java.