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

Adakah Tugasan ArrayList Java Mencipta Salinan atau Rujukan Dikongsi?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-19 06:52:02564semak imbas

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();

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);

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!

Kenyataan:
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