Rumah > Java > javaTutorial > Adakah Tugasan ArrayList Java Mencipta Salinan atau Rujukan Dikongsi?

Adakah Tugasan ArrayList Java Mencipta Salinan atau Rujukan Dikongsi?

Mary-Kate Olsen
Lepaskan: 2024-11-19 06:52:02
asal
635 orang telah melayarinya

Does Java's ArrayList Assignment Create a Copy or a Shared Reference?

Menyalin Objek ArrayList dalam Java

Dalam Java, ArrayLists ialah tatasusunan dinamik yang boleh digunakan untuk menyimpan elemen jenis tertentu. Apabila bekerja dengan ArrayLists, adalah penting untuk memahami bagaimana tugasan berfungsi.

Soalan: Rujukan Kongsi atau Salin?

Andaikan kita mempunyai ArrayList l1 dengan 10 elemen dan berikannya kepada pembolehubah l2 yang lain. Adakah l1 dan l2 menunjuk ke objek ArrayList yang sama, atau adakah salinan objek diberikan kepada l2?

Jawapan: Rujukan Dikongsi

Tugasan dalam Java hanya menyalin nilai pembolehubah, yang dalam kes ini adalah rujukan kepada objek ArrayList. Akibatnya, l1 dan l2 kedua-duanya akan merujuk kepada objek ArrayList yang sama.

Contohnya:

List<Integer> l1 = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
    l1.add(i);
}

List l2 = l1;
l2.clear();
Salin selepas log masuk

Dalam kes ini, mengosongkan l2 juga mempengaruhi l1 kerana kedua-duanya menunjuk ke arah yang sama objek.

Mencipta Salinan

Untuk mencipta salinan objek ArrayList, salinan cetek boleh dibuat dengan mencipta ArrayList baharu dan menambah elemen daripada senarai asal kepada yang baharu:

List<Integer> newList = new ArrayList<>(oldList);
Salin selepas log masuk

Kaedah ini menghasilkan objek ArrayList yang berasingan dengan elemen yang sama seperti yang asal.

Atas ialah kandungan terperinci Adakah Tugasan ArrayList Java Mencipta Salinan atau Rujukan Dikongsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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