Der folgende Code kopiert eine Liste, die andere Listen als referenzierte Objekte enthalten:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(final String[] args) {
final ArrayList list = new ArrayList();
list.add(Arrays.asList("A", "B", "C"));
list.add("D");
System.out.println(list);
final ArrayList out = new ArrayList();
deepCopy(out, list);
System.out.println(out);
}
public static void deepCopy(final List out,
final List in) {
for (Object o: in)
if (o instanceof List) {
final ArrayList copy = new ArrayList();
deepCopy(copy, (List)o);
out.add(copy);
}
else
out.add(o);
}
}
Edit:
Wenn Sie die referenzierte Objekte wollen geklont werden, müssen Sie Zugriff auf das clone Verfahren haben, die referenzierten Objekte.
Fügen Sie bitte ein Beispiel [Minimal, vollständig und verifizierbar] (https://stackoverflow.com/help/mcve) hinzu. Da es Ihre erste Frage zu SO ist, lesen Sie [die Anleitung zum Stellen guter Fragen] (https://stackoverflow.com/help/how-to-ask). –
Über die Objekte in Referenzen: Brauchen Sie sie, um geklont zu werden? – thanopi57
Maybee konsultieren [Arrays.deepEquals (...)] (https://docs.oracle.com/javase/9/docs/api/java/util/Arrays.html#deepEquals-java.lang.Object:A- java.lang.Object: A-) Methode? – thanopi57