Heim >Java >javaLernprogramm >Wie wirkt sich die Zuweisung einer ArrayList zu einer neuen Referenz auf das ursprüngliche Objekt aus?

Wie wirkt sich die Zuweisung einer ArrayList zu einer neuen Referenz auf das ursprüngliche Objekt aus?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-20 12:47:11419Durchsuche

How does assigning an ArrayList to a new reference affect the original object?

Java ArrayList-Objektreferenzierung in der Zuweisung

Wenn eine ArrayList l1 einer neuen Referenz l2 zugewiesen wird, verweisen l1 und l2 nicht auf eine andere ArrayList-Objekte. Stattdessen erhält l2 eine Referenz auf dasselbe ArrayList-Objekt wie l1. Dies wird als flache Kopie bezeichnet.

Änderungen des Listenobjekts über l1 oder l2 werden in beiden Referenzen widergespiegelt. Wie im Beispiel zu sehen ist:

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

List l2 = l1;
l2.clear();

l1 und l2 verweisen beide auf dasselbe Objekt, daher wirkt sich das Löschen der Liste über l2 auch auf l1 aus.

Um eine Kopie des ArrayList-Objekts zu erstellen, a Es sollte eine neue Liste mit einer Kopie der ursprünglichen Elemente erstellt werden. Eine Möglichkeit, dies zu erreichen, ist die Verwendung des ArrayList(Collection c)-Konstruktors, wobei c die ursprüngliche Sammlung ist:

List<Integer> newList = new ArrayList<>(l1);

Dadurch wird ein neues ArrayList-Objekt mit einer separaten Referenz und Kopie davon erstellt Elemente aus l1.

Das obige ist der detaillierte Inhalt vonWie wirkt sich die Zuweisung einer ArrayList zu einer neuen Referenz auf das ursprüngliche Objekt aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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