Rumah Java javaTutorial Bagaimanakah kaedah Arrays.copyOf() dalam Java menyalin tatasusunan ke dalam tatasusunan baharu?

Bagaimanakah kaedah Arrays.copyOf() dalam Java menyalin tatasusunan ke dalam tatasusunan baharu?

Nov 18, 2023 pm 01:33 PM
java arrays copyof()

Bagaimanakah kaedah Arrays.copyOf() dalam Java menyalin tatasusunan ke dalam tatasusunan baharu?

Bagaimanakah kaedah Arrays.copyOf() dalam Java menyalin tatasusunan ke tatasusunan baharu?

Di Java, tatasusunan ialah struktur data yang sangat biasa, dan kelas Tatasusunan Java memberi kami banyak kaedah yang mudah untuk menangani tatasusunan. Antaranya, kaedah Arrays.copyOf() ialah kaedah yang sangat berguna untuk menyalin tatasusunan kepada tatasusunan baharu. Artikel ini akan memperkenalkan prinsip penggunaan dan pelaksanaan kaedah ini, dan memberikan contoh kod khusus.

Kaedah penggunaan

Kaedah Arrays.copyOf() mempunyai dua parameter: tatasusunan asal dan panjang tatasusunan baharu selepas disalin. Kaedah ini mencipta tatasusunan baharu dan menyalin elemen daripada tatasusunan asal kepada tatasusunan baharu. Jika panjang tatasusunan asal lebih besar daripada atau sama dengan panjang tatasusunan baharu, bahagian hadapan tatasusunan asal akan disalin. Jika panjang tatasusunan asal kurang daripada panjang tatasusunan baharu, semua elemen tatasusunan asal akan disalin ke tatasusunan baharu, dan unsur-unsur selebihnya diisi dengan nilai lalai jenis elemen tatasusunan.

Berikut ialah contoh memanggil kaedah Arrays.copyOf():

int[] arr1 = {1, 2, 3, 4, 5};#🎜 🎜# int[] arr2 = Arrays.copyOf(arr1, 3);

Dalam contoh ini, kami mencipta tatasusunan integer arr1 yang mengandungi 5 elemen. Kami memanggil kaedah Arrays.copyOf() untuk menyalin arr1 ke tatasusunan lain bernama arr2 dan menetapkan panjang arr2 kepada 3. Memandangkan panjang array arr1 ialah 5 dan panjang arr2 ialah 3, kaedah Arrays.copyOf() hanya menyalin 3 elemen pertama arr1 kepada arr2. Akibatnya, arr2 kini mengandungi {1, 2, 3}.

Ini hanyalah contoh paling asas menggunakan kaedah Arrays.copyOf(). Seterusnya, kita akan melihat beberapa penggunaan dan contoh yang lebih kompleks.

Salin tatasusunan dua dimensi

Kaedah Arrays.copyOf() bukan sahaja sesuai untuk tatasusunan satu dimensi, ia juga boleh digunakan untuk menyalin tatasusunan dua dimensi. Dalam contoh berikut, kami mencipta tatasusunan integer dua dimensi bernama matrix1 dan menyalinnya ke tatasusunan lain bernama matrix2 menggunakan kaedah Arrays.copyOf():

int[] [] matrix1 = {{1 , 2, 3}, {4, 5, 6}};

int[][] matriks2 = Arrays.copyOf(matrix1, 2);

Dalam contoh ini, kita menyalin matriks1 ke dalam matriks2 dan tetapkan panjang matriks2 kepada 2. Memandangkan matrix1 ialah tatasusunan dua dimensi dan kaedah Arrays.copyOf() hanya boleh menyalin tatasusunan satu dimensi, kami mencipta tatasusunan dua dimensi baharu dengan panjang 2 dan elemen pertamanya ialah elemen pertama baris matriks1 , elemen kedua ialah baris kedua matriks1. Dengan cara ini kita boleh menyalin satu tatasusunan 2D ke tatasusunan lain.

Salin julat tertentu tatasusunan

Dalam sesetengah kes, kami mungkin hanya mahu menyalin julat tertentu elemen daripada tatasusunan asal. Kaedah Arrays.copyOfRange() ialah kaedah yang sangat berguna yang membolehkan kita menentukan indeks dalam tatasusunan asal untuk mula menyalin dan berakhir pada indeks mana. Berikut ialah contoh kaedah Arrays.copyOfRange():

int[] arr1 = {1, 2, 3, 4, 5};

int[] arr2 = Tatasusunan. copyOfRange( arr1, 1, 4);

Dalam contoh ini, kami mencipta tatasusunan integer bernama arr1, yang mengandungi 5 elemen. Kami memanggil kaedah Arrays.copyOfRange() dan menetapkannya kepada arr2. Kami lulus arr1 sebagai parameter pertama kepada kaedah dan 1 dan 4 sebagai parameter kedua dan ketiga. Ini bermakna kita hanya mahu menyalin bermula dari indeks 1 arr1 (iaitu elemen kedua) sehingga indeks 4 (iaitu elemen kelima), tidak termasuk indeks 4. Akibatnya, arr2 kini mengandungi {2, 3, 4}.

Memandangkan kaedah Arrays.copyOfRange() hanya menyalin sebahagian daripada tatasusunan asal, kami boleh menyalin julat elemen tertentu daripada tatasusunan asal dengan cara ini.

Prinsip pelaksanaan

Kaedah Arrays.copyOf() sebenarnya merupakan pelaksanaan dipermudahkan kaedah System.arraycopy(). Kaedah System.arraycopy() ialah salah satu kaedah terpantas di Java untuk menyalin elemen antara tatasusunan dan mempunyai fleksibiliti dan prestasi yang lebih tinggi daripada kaedah Arrays.copyOf(). Selain itu, kaedah System.arraycopy() juga merupakan kaedah pelaksanaan asas bagi kaedah Arrays.copyOf().

Berikut ialah pelaksanaan kod sumber kaedah Arrays.copyOf():

statik awam T[] copyOf(T[] original, int newLength ) {# 🎜🎜#
return (T[]) copyOf(original, newLength, original.getClass());
Salin selepas log masuk

}

statik awam T[] copyOf(U[] original, int newLength, Class newType) {

@SuppressWarnings("unchecked")
T[] copy = ((Object)newType == (Object)Object[].class)
    ? (T[]) new Object[newLength]
    : (T[]) Array.newInstance(newType.getComponentType(), newLength);
System.arraycopy(original, 0, copy, 0,
                 Math.min(original.length, newLength));
return copy;
Salin selepas log masuk

}

Seperti yang dapat dilihat daripada pelaksanaan kod, baris pertama kaedah Arrays.copyOf() memanggil versi overloaded copyOf() kaedah, dan Hasil yang dikembalikan oleh kaedah ini dikembalikan kepada pemanggil. Kaedah ini menerima tatasusunan asal dan panjang tatasusunan baharu sebagai parameter dan menyerahkannya kepada kaedah copyOf() kedua.

Kaedah copyOf() kedua melaksanakan langkah berikut untuk mencipta tatasusunan baharu dan menyalin elemen:

  • Buat tatasusunan generik baharu menggunakan parameter newType.
  • Buat tatasusunan baharu menggunakan jenis komponen tatasusunan asal (jika newType bukan Objek[]).
  • Gunakan kaedah System.arraycopy() untuk menyalin elemen tatasusunan asal ke tatasusunan baharu.
  • Kembalikan tatasusunan baru yang disalin.

Memandangkan pelaksanaan kaedah Arrays.copyOf() bergantung pada kaedah System.arraycopy(), ia mengikut peraturan dan sekatan kaedah ini, seperti tidak menyalin tatasusunan yang merangkumi dua jenis berbeza.

Summary

Kaedah Arrays.copyOf() ialah cara yang mudah untuk menyalin tatasusunan dalam Java Ia boleh mencipta tatasusunan baharu dan menyalin elemen tatasusunan asal ke tatasusunan baharu. Kaedah ini boleh digunakan untuk menyalin tatasusunan satu dan dua dimensi, serta menyalin julat elemen tertentu. Pelaksanaan kaedah Arrays.copyOf() adalah berdasarkan kaedah System.arraycopy(), jadi ia mempunyai peraturan dan sekatan yang sama. Apabila berurusan dengan tatasusunan, kelas Tatasusunan ialah alat yang sangat berguna yang boleh membantu kami mengendalikan dan memanipulasi tatasusunan dengan lebih mudah.

Atas ialah kandungan terperinci Bagaimanakah kaedah Arrays.copyOf() dalam Java menyalin tatasusunan ke dalam tatasusunan baharu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

Program Java untuk mencari kelantangan kapsul Program Java untuk mencari kelantangan kapsul Feb 07, 2025 am 11:37 AM

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Oct 13, 2024 pm 01:32 PM

Java ialah bahasa pengaturcaraan popular yang boleh dipelajari oleh pembangun pemula dan berpengalaman. Tutorial ini bermula dengan konsep asas dan diteruskan melalui topik lanjutan. Selepas memasang Kit Pembangunan Java, anda boleh berlatih pengaturcaraan dengan mencipta program "Hello, World!" Selepas anda memahami kod, gunakan gesaan arahan untuk menyusun dan menjalankan program, dan "Hello, World!" Pembelajaran Java memulakan perjalanan pengaturcaraan anda, dan apabila penguasaan anda semakin mendalam, anda boleh mencipta aplikasi yang lebih kompleks.

See all articles