Está en la página 1de 2

jueves, 14 de septiembre de 2017

Copia de Objetos

Para maana

- Video CHR

- Y cuestionario (Hasta el Lunes)

Hoy Copiar objetos

| Creamos un clase persona

PERSONA

-nombre:String

-sueldo: int

- Creamos un ArrayList de Personas

- Intento 1) (Ordenar)(el objeto debe quedar desordenado)

- Cambiar datos en uno (el otro debe quedar con los datos anteriores)

- Intento 2) Shallow Copy

(Copia Superficial)

En un lugar de: vcopia=v;

Hacemos vcopia=(ArrayList) v.clone();

En este caso, se genera un clon de lal lista

Si ordeno una lista, la otra queda desordenada

Si cambio datos en una, se cambian en las dos listas X

Intentento 3 )Deep Copy

Ademas de clonar la lista, debo clonar a todos sus elementos.

vCopia= (ArrayList)v.clone();

for(int i =0;i<v.size();i++){

vCopia.set(i,(Persona)v.get(I).clone())

1
jueves, 14 de septiembre de 2017
}

// para poder clonar objetos, la clase debe implementar la interface Clonable

E implementar el metodo clon

CODIGO:

Persona p1 = new Persona(Santiago, 2000);

Persona p1 = new Persona(pedro, 300);

ArrayList<Persona > v = new ArrayList<>();

v.add(p1);

v.add(p2);

ArrayList<Persona> vcopia = new ArrayList<>();

vCopia= v;// no es copia es un alias ambas apuntan al mismo lugar de memoria

Colllections.sort(v);

sout(v);

sout(vcopia);

También podría gustarte