Ich habe eine ArrayList mit benutzerdefinierten Objekten.Eine neue ArrayList erstellen, die Objekte enthält, die der ersten Liste entsprechen?
Was ist der beste Weg, um eine separate ArrayList zu erstellen, die den gleichen Inhalt hat, aber nicht die gleichen Referenzen verwendet? Wenn ich das erste Objekt in list1 editiere, berührt es nicht das erste Objekt in list2, aber ansonsten sehen sie durch und durch gleich aus.
Wird es als richtig/gute Praxis angesehen, das Folgende zu tun, oder gibt es einen eingebauten Weg?
List<MyObject> firstList = getArrayListFromSQLiteDb(criteria);
List<MyObject> secondList = new ArrayList<>();
for (MyObject object : firstList) {
MyObject newObject = new MyObject();
newObject.setField1(object.getField1());
newObject.setField2(object.getField2());
newObject.setField3(object.getField3());
secondList.add(newObject);
}
Es sieht aus wie das, was Sie tun, ist in Ordnung. Sei aber vorsichtig. Wenn eines der Felder Referenzen sind, werden sie überkopiert und es klingt so, als ob Sie nicht wollen. –
Liste firstList = getArrayListFromSQLiteDb (Kriterien); und Liste secondList = new ArrayList (firstList); –
@ManuAG Wenn Onky sie die [Dokumentation] lesen würden (https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html) ... –