Rumah >Java >javaTutorial >Bagaimanakah Anda Menduakan Tatasusunan 2D dengan Cekap di Jawa?
Apabila memanipulasi tatasusunan berbilang dimensi dalam Java, keperluan untuk mencipta salinan tatasusunan sedia ada sering timbul. Memahami pendekatan optimum untuk menyalin tatasusunan sedemikian adalah penting untuk mengekalkan integriti data dan mengelakkan perangkap.
Dalam senario yang diberikan, tatasusunan 2D integer, matriks, akan disalin ke dalam pembolehubah tempatan, myInt, untuk menyunting tujuan. Walaupun pendekatan manual boleh dilakukan, ia boleh terdedah kepada ralat dan tidak cekap.
Sebaliknya, Java menawarkan dua teknik yang disyorkan untuk menyalin tatasusunan 2D: menggunakan clone() atau System.arraycopy ().
Kaedah klon() mencipta salinan cetek tatasusunan, di mana tatasusunan asal dan salinan merujuk elemen asas yang sama. Untuk tatasusunan 2D seperti matriks, ini melibatkan:
<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 mudah tetapi hanya mencipta salinan rujukan, bukan elemen itu sendiri. Jika mana-mana elemen dalam matriks diubah suai, elemen yang sepadan dalam myInt akan terjejas juga.
Kaedah System.arraycopy() melakukan salinan dalam, menyalin nilai sebenar unsur-unsur dan bukannya rujukan sahaja. Untuk tatasusunan 2D:
<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>
Kaedah ini memerlukan lebih sedikit kerja kerana ia mencipta tatasusunan baharu untuk setiap baris, tetapi ia memastikan myInt ialah salinan bebas. Sebarang pengubahsuaian yang dibuat pada myInt tidak akan menjejaskan matriks.
Walaupun menyalin tatasusunan 2D secara manual adalah mungkin, adalah sangat disyorkan untuk menggunakan kaedah klon() atau System.arraycopy() untuk kecekapan , ketepatan dan kemudahan. Ini memastikan tatasusunan yang disalin (myInt) diasingkan dengan betul daripada tatasusunan asal (matriks), membenarkan pengubahsuaian bebas tanpa risiko kesan sampingan yang tidak diingini.
Atas ialah kandungan terperinci Bagaimanakah Anda Menduakan Tatasusunan 2D dengan Cekap di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!