Rumah > Java > javaTutorial > Bagaimana untuk Deep Clone ArrayLists di Jawa?

Bagaimana untuk Deep Clone ArrayLists di Jawa?

Linda Hamilton
Lepaskan: 2025-01-01 02:00:09
asal
330 orang telah melayarinya

How to Deep Clone ArrayLists in Java?

Mengklon ArrayLists dan Kandungannya

Di Java, pengklonan dalam ArrayList melibatkan mencipta senarai baharu yang mengandungi contoh baharu objek senarai asal , bukannya merujuk kepada objek asal. Untuk mencapai matlamat ini, pendekatan yang komprehensif diperlukan.

Pengklonan Tersuai

Satu kaedah ialah mencipta pembina klon tersuai untuk objek yang disimpan dalam ArrayList. Pembina ini akan menduplikasi medan setiap objek, mencipta salinan baharu dengan berkesan dan bukannya rujukan semata-mata kepada yang asal.

Contohnya, dengan kelas Anjing:

class Dog {
    public Dog() { ... } // Regular constructor

    public Dog(Dog dog) {
        // Copy all the fields of Dog.
    }
}
Salin selepas log masuk

Dengan mengulang melalui ArrayList asal dan mencipta objek Anjing baharu menggunakan pembina ini, senarai klon dengan objek bebas boleh dicipta:

public static List<Dog> cloneList(List<Dog> dogList) {
    List<Dog> clonedList = new ArrayList<>(dogList.size());
    for (Dog dog : dogList) {
        clonedList.add(new Dog(dog));
    }
    return clonedList;
}
Salin selepas log masuk

Antara Muka Boleh Diklon

Selain itu, mentakrifkan antara muka ICloneable tersuai dengan kaedah klon() boleh mendayakan pengklonan generik untuk pelbagai jenis objek. Walau bagaimanapun, perlu diingat bahawa pendekatan ini memerlukan pelaksanaan logik pengklonan untuk setiap jenis yang perlu diklon.

Atas ialah kandungan terperinci Bagaimana untuk Deep Clone ArrayLists di Jawa?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan