Ich sehe ein Verhalten, das ich nicht ganz nachvollziehen kann und fragte mich, ob jemand so freundlich wäre, genau zu erklären, was hier vor sich geht. Dies ist der Code, den ich derzeit habe.Warum entferne ich ein Element aus der falschen ArrayList?
public class MyClass {
ArrayList<String> myList = new ArrayList<String>();
public MyClass() {
populate();
removeData(myList);
}
private void populate() {
myList.add("Some data");
myList.add("Some more data");
myList.add("Even more data");
}
private void removeData(ArrayList<String> list) {
ArrayList<String> temp = new ArrayList<String>();
temp = list;
temp.remove("Some data");
}
}
Jetzt aus irgendeinem Grunde, nachdem ich diesen Code ausführen, werden Daten aus dem Arraylist „myList“ entfernt. Warum passiert das, obwohl ich nur Daten aus einer Variablen innerhalb der Methode "removeData" und nicht aus dem Feld "myList" entfernen soll?
aber sie zugewiesen 'temp = list' so dass im Grunde die Referenzen verweisen auf das gleiche Objekt erstellt wurde – ochi
Java zuzuweisen Objekt Referenzen, müssen Sie mehr über Java und Objektorientierte Programmierung Grundlagen lesen –
Weil templist = mylist ist die Zuordnung der Referenz von mylist zu templist.so was auch immer Sie auf templist tun wird meine Liste auswirken. –