Heim > Java > javaLernprogramm > Hauptteil

Erstellt die ArrayList-Zuweisung von Java eine Kopie oder eine gemeinsame Referenz?

Mary-Kate Olsen
Freigeben: 2024-11-19 06:52:02
Original
574 Leute haben es durchsucht

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

ArrayList-Objekte in Java kopieren

In Java sind ArrayLists dynamische Arrays, die zum Speichern von Elementen eines bestimmten Typs verwendet werden können. Bei der Arbeit mit ArrayLists ist es wichtig zu verstehen, wie sich Zuweisungen verhalten.

Frage: Gemeinsame Referenz oder Kopie?

Angenommen, wir haben eine ArrayList l1 mit 10 Elementen und weisen sie einer anderen Variablen l2 zu. Zeigen l1 und l2 auf dasselbe ArrayList-Objekt oder ist l2 eine Kopie des Objekts zugewiesen?

Antwort: Gemeinsame Referenz

Zuweisung in Java kopiert einfach den Wert der Variablen, die In diesem Fall handelt es sich um einen Verweis auf das ArrayList-Objekt. Infolgedessen verweisen l1 und l2 beide auf dasselbe ArrayList-Objekt.

Zum Beispiel:

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

List l2 = l1;
l2.clear();
Nach dem Login kopieren

In diesem Fall wirkt sich das Löschen von l2 auch auf l1 aus, da beide auf dasselbe verweisen Objekt.

Erstellen einer Kopie

Um eine Kopie eines ArrayList-Objekts zu erstellen, kann eine flache Kopie erstellt werden, indem eine neue ArrayList erstellt und die Elemente aus der ursprünglichen Liste zur neuen hinzugefügt werden:

List<Integer> newList = new ArrayList<>(oldList);
Nach dem Login kopieren

Diese Methode führt zu einem separaten ArrayList-Objekt mit denselben Elementen wie das Original.

Das obige ist der detaillierte Inhalt vonErstellt die ArrayList-Zuweisung von Java eine Kopie oder eine gemeinsame Referenz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage