Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Menyalin Array 2D dengan Cekap dan Selamat di Jawa?

DDD
Lepaskan: 2024-11-01 12:42:02
asal
280 orang telah melayarinya

How to Efficiently and Safely Copy a 2D Array in Java?

Cara Menyalin Tatasusunan 2D dalam Java

Soalan:

Anda mempunyai 2D tatasusunan dipanggil matriks yang anda ingin salin ke dalam pembolehubah tempatan dalam kaedah untuk mengedit. Apakah cara yang paling berkesan dan kalis ralat untuk membuat salinan lengkap?

Jawapan:

Terdapat dua cara yang disyorkan untuk menyalin tatasusunan 2D dalam Java:

Menggunakan klon():

Kaedah klon() mencipta tatasusunan baharu dengan saiz dan kandungan yang sama seperti yang asal. Untuk tatasusunan 2D, anda perlu mengklon setiap baris individu:

<code class="java">int[][] myInt = new int[matrix.length][];
for (int i = 0; i < matrix.length; i++)
    myInt[i] = matrix[i].clone();</code>
Salin selepas log masuk

Menggunakan System.arraycopy():

Kaedah System.arraycopy() juga boleh digunakan untuk menyalin tatasusunan 2D. Ia memerlukan mencipta tatasusunan baharu dan menyalin setiap elemen secara manual:

<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>
Salin selepas log masuk

Kelebihan:

Kedua-dua kaedah lebih pantas dan kurang terdedah kepada ralat berbanding menyalin tatasusunan secara manual. System.arraycopy() amat cekap kerana ia dilaksanakan dalam kod asli.

Nota:

Dalam sesetengah kes, anda mungkin hanya memerlukan salinan cetek tatasusunan , di mana elemen yang diubah suai dalam salinan dicerminkan dalam tatasusunan asal. Untuk salinan cetek, anda hanya boleh menetapkan tatasusunan secara langsung, cth., int[][] myInt = matriks;. Walau bagaimanapun, ini tidak disyorkan untuk tujuan penyuntingan.

Atas ialah kandungan terperinci Bagaimana untuk Menyalin Array 2D dengan Cekap dan Selamat di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!