Heim >Java >javaLernprogramm >Wie wirkt sich die Zuweisung einer ArrayList zu einer neuen Referenz auf das ursprüngliche Objekt aus?
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 erweitert E> 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!