recorrer objetos metodos llenar imprimir como clase java arraylist deep-copy

objetos - recorrer arraylist java foreach



Cómo hacer una copia profunda de Java ArrayList (2)

Clonación de los objetos antes de agregarlos. Por ejemplo, en lugar de newList.addAll(oldList);

for(Person p : oldList) { newList.add(p.clone()); }

Suponiendo que el clone está anulado correctamente en Person .

Posible duplicado:
¿Cómo clonar ArrayList y también clonar sus contenidos?

tratando de hacer una copia de una ArrayList. El objeto subyacente es simple y contiene objetos Strings, ints, BigDecimals, Dates y DateTime. ¿Cómo puedo asegurarme de que las modificaciones realizadas en la nueva ArrayList no se vean reflejadas en la lista ArrayList anterior?

Person morts = new Person("whateva"); List<Person> oldList = new ArrayList<Person>(); oldList.add(morts); oldList.get(0).setName("Mortimer"); List<Person> newList = new ArrayList<Person>(); newList.addAll(oldList); newList.get(0).setName("Rupert"); System.out.println("oldName : " + oldList.get(0).getName()); System.out.println("newName : " + newList.get(0).getName());

Saludos, P


public class Person{ String s; Date d; ... public Person clone(){ Person p = new Person(); p.s = this.s.clone(); p.d = this.d.clone(); ... return p; } }

En tu código de ejecución:

ArrayList<Person> clone = new ArrayList<Person>(); for(Person p : originalList) clone.add(p.clone());