Di Java, semasa menggunakan koleksi, kami menjumpai pelbagai senario untuk menyalin satu elemen senarai ke yang lain dengan langkah berjaga-jaga supaya indeks elemen tidak boleh terjejas semasa menyalin. Untuk jenis senario sedemikian, pakej java.util.Collections memberikan kami fungsi copy() yang menyalin elemen yang hadir dalam satu senarai ke dalam senarai yang lain, supaya elemen mempunyai indeks yang sama dalam senarai baharu juga. Semasa menggunakan fungsi ini, saiz senarai destinasi mestilah lebih besar daripada saiz senarai sumber. Kerumitan masa fungsi ini adalah linear.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Sintaks dengan Parameter
Berikut ialah sintaks copy() dalam java dengan parameter:
Sintaks:
public static void copy(List dest, List src)
- Di sini, kata kunci awam menyatakan bahawa fungsi ini boleh dipanggil dengan mudah dalam mana-mana kelas lain.
- Kata kunci statik merujuk bahawa fungsi ini berfungsi pada peringkat kelas dan oleh itu keperluan akan dipanggil oleh fungsi statik lain sahaja serta boleh dipanggil menggunakan nama kelas tanpa menggunakan objek kelas.
- Kata kunci void digunakan untuk menunjukkan fungsi ini tidak mengembalikan apa-apa.
Hujah:
- dest: Ia ialah pembolehubah jenis Senarai yang memegang rujukan untuk senarai destinasi di mana data perlu disalin.
- src: Ia ialah pembolehubah jenis Senarai yang memegang rujukan untuk senarai sumber yang perlu disalin.
Fungsi di atas melontarkan pengecualian di bawah:
- IndexOutOfBoundsException: Pengecualian ini berlaku apabila saiz senarai destinasi lebih kecil daripada saiz senarai sumber.
- UnsupportedOperationException: Pengecualian ini berlaku apabila lelang senarai senarai destinasi tidak menyokong operasi yang ditetapkan.
Bagaimana kaedah copy() berfungsi dalam Java?
- Kaedah Copy() mengambil 2 senarai. Senarai sumber yang elemennya perlu disalin dan senarai destinasi di mana elemen senarai perlu disalin.
- Pertama, ia disemak jika saiz senarai destinasi lebih besar daripada senarai sumber; jika tidak, pengecualian IndexOutOfBoundsException dilemparkan.
- Ini menunjukkan bahawa JVM tidak dapat mencari indeks untuk elemen yang perlu disalin kerana semasa menyalin elemen dari senarai sumber ke senarai destinasi, indeks elemen juga dijaga. Jika sekiranya terdapat satu elemen dalam senarai destinasi pada indeks yang sama, elemen tertentu akan ditimpa oleh elemen penyalin.
- Elemen lain daripada senarai sumber disalin satu demi satu dengan nilai indeksnya dan akan disalin ke senarai destinasi pada indeks yang sama. Unsur yang terdapat pada indeks lain dalam senarai destinasi kekal tidak berubah.
- Keseluruhan operasi ini dilakukan menggunakan satu lelaran elemen, oleh itu mempunyai kerumitan masa linear yang bermaksud kerumitan ialah O(n).
Contoh copy() dalam Java
Diberikan di bawah adalah contoh yang dinyatakan di bawah:
Contoh #1
Untuk menggambarkan kejadian IndexOutOfBoundsException apabila saiz senarai destinasi kurang daripada senarai sumber.
Kod:
import java.util.*; public class Demo { public static void main(String[] args) { List<string> mysrclist = new ArrayList<string>(6); List<string> mydestlist = new ArrayList<string>(11); mysrclist.add("Lets practice"); mysrclist.add("Java"); mysrclist.add("with US"); mysrclist.add("EDUCBA"); mysrclist.add("is a great"); mysrclist.add("Learnig Platform"); Collections.copy(mydestlist, mysrclist); System.out.println("Elements of source list: "+mysrclist); System.out.println("Elements of destination list: "+mydestlist); } }</string></string></string></string>
Output:
Memandangkan saiz senarai destinasi ialah 0 dan saiz senarai sumber ialah 6, tiada tempat dalam senarai destinasi pada indeks tertentu itu; oleh itu, pengecualian di bawah ini dibuang sebagai output.
Explanation:
- Dalam kes program di atas, 2 senarai diambil dan dihantar ke kaedah copy() sebagai argumen, tetapi memandangkan saiz senarai destinasi adalah lebih kecil daripada saiz senarai sumber, oleh itu, IndexOutOfBoundsException berlaku.
- Isu seperti itu diselesaikan dalam contoh di bawah, dengan saiz senarai destinasi adalah sama dengan senarai sumber.
Contoh #2
Kod:
import java.util.*; public class Demo { public static void main(String[] args) { List<string> mysrclist = new ArrayList<string>(6); List<string> mydestlist = new ArrayList<string>(11); mysrclist.add("Lets practice"); mysrclist.add("Java"); mysrclist.add("with US"); System.out.println("Elements of source list: "+mysrclist); mydestlist.add("EDUCBA"); mydestlist.add("is a great"); mydestlist.add("Learnig Platform"); System.out.println("Elements of destination list before copy() executes: "+mydestlist); Collections.copy(mydestlist, mysrclist); System.out.println("Elements of destination list after copy() executes: "+mydestlist); } }</string></string></string></string>
Output:
Penjelasan:
- Senarai sumber mempunyai 3 elemen pada indeks 0,1 dan 2 sama seperti senarai destinasi dalam contoh di atas.
- Apabila 2 senarai ini diluluskan dalam fungsi salin, memandangkan saiz 2 senarai adalah sama, elemen dalam senarai destinasi akan ditimpa oleh elemen senarai sumber pada indeks yang sama.
Contoh #3
Dalam contoh ini, kita akan melihat cara elemen senarai destinasi ditimpa apabila elemen senarai sumber disalin ke dalamnya.
Kod:
import java.util.*; public class Demo { public static void main(String[] args) { //Create lists for source and destination List<string> mysrclist = new ArrayList<string>(6); List<string> mydestlist = new ArrayList<string>(11); //Populate two source and destination lists mysrclist.add("DIgital Learning"); mysrclist.add("for Java"); mysrclist.add("is great"); System.out.println("Elements of source list: "+mysrclist); mydestlist.add("Book Learning"); mydestlist.add("is"); mydestlist.add("a great"); mydestlist.add("Learnig Platform"); mydestlist.add("For All"); System.out.println("Elements of destination list before copying : "+mydestlist); // copy into destination list Collections.copy(mydestlist, mysrclist); System.out.println("Elements of destination list after copying : "+mydestlist); } }</string></string></string></string>
Output:
Penjelasan:
- Di sini kami melihat elemen pada 3 indeks pertama dalam senarai destinasi ditimpa apabila elemen disalin ke dalamnya dan elemen pada indeks lain kekal tidak terjejas.
Kesimpulan
Pakej koleksi menyediakan kami kaedah statik awam yang boleh digunakan untuk menyalin satu elemen senarai sumber ke dalam senarai destinasi pada indeks yang sama. Kaedah ini hanya berfungsi dalam senarai destinasi, yang lebih besar daripada senarai sumber, dan operasi ini mempunyai kerumitan masa linear.
Atas ialah kandungan terperinci copy() dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Dreamweaver Mac版
Alat pembangunan web visual

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.