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
Berikut ialah sintaks copy() dalam java dengan parameter:
Sintaks:
public static void copy(List dest, List src)
Hujah:
Fungsi di atas melontarkan pengecualian di bawah:
Diberikan di bawah adalah contoh yang dinyatakan di bawah:
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); } }
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:
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); } }
Output:
Penjelasan:
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); } }
Output:
Penjelasan:
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!