cari
RumahJavajavaTutorialBagaimanakah anda membuat salinan sebenar tatasusunan dua dimensi di Jawa tanpa akibat yang tidak diingini?

How do you create a true copy of a two-dimensional array in Java without unintended consequences?

Menyalin Tatasusunan Dua Dimensi dengan Berkesan dalam Java

Apabila bekerja dengan tatasusunan dua dimensi, selalunya perlu mencipta salinan tatasusunan asal untuk mengekalkan nilai asalnya. Walau bagaimanapun, tugasan langsung seperti lama = semasa boleh membawa kepada akibat yang tidak diingini.

Memahami Tugasan Tatasusunan Java

Dalam Java, tatasusunan ialah objek, dan tugasan antara tatasusunan ialah rujukan kepada tatasusunan asas yang sama. Oleh itu, mengemas kini satu tatasusunan mempengaruhi yang lain kerana kedua-duanya menunjuk kepada data yang sama.

Kaedah Penyalinan Salah

Kaedah yang disediakan, old() dan keepold(), hanya memberikan rujukan kepada tatasusunan. Akibatnya, apabila semasa dikemas kini selepas memanggil old(), perubahan juga ditunjukkan dalam old. Begitu juga, selepas memanggil keepold(), semasa menjadi rujukan kepada lama dan sebarang kemas kini kepada semasa kemas kini lama.

Penyalinan Berkesan dengan Streams API (Java 8 )

Untuk mencipta salinan sebenar tatasusunan, perlu melakukan salinan dalam. API aliran yang diperkenalkan dalam Java 8 menyediakan cara yang cekap untuk mencapai ini menggunakan kod berikut:

<code class="java">int[][] copy = Arrays.stream(matrix).map(int[]::clone).toArray(int[][]::new);</code>

Di sini, setiap baris tatasusunan input (matriks dalam contoh ini) diklon menggunakan map(int[] ::clone), mencipta tatasusunan baharu untuk setiap baris. Aliran tatasusunan klon yang terhasil kemudian ditukar kembali kepada tatasusunan dua dimensi menggunakan toArray(int[][]::new). Proses ini memastikan kedua-dua salinan dan tatasusunan asal adalah berbeza dan boleh diubah suai secara bebas.

Atas ialah kandungan terperinci Bagaimanakah anda membuat salinan sebenar tatasusunan dua dimensi di Jawa tanpa akibat yang tidak diingini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma