Foros del Web » Programación para mayores de 30 ;) » Java »

Copiar un ArrayList

Estas en el tema de Copiar un ArrayList en el foro de Java en Foros del Web. Hola, quisiera saber si existe algún método en java (para no tener que hacer el simple bucle for e ir copiando elemento a elemento) que ...
  #1 (permalink)  
Antiguo 15/10/2010, 08:53
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 13
Antigüedad: 14 años, 2 meses
Puntos: 0
Copiar un ArrayList

Hola, quisiera saber si existe algún método en java (para no tener que hacer el simple bucle for e ir copiando elemento a elemento) que me copie un ArrayList, en otro ArrayList, excepto uno de sus elementos (del que conozco la posicion).
Gracias.
  #2 (permalink)  
Antiguo 15/10/2010, 09:42
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: Copiar un ArrayList

Que tal !!!

Puedes usar el metodo clone() que te retorna una copia, asi:

Código:
 copia = original.clone();
Recuerda que tienes que haber creado tanto el objeto copia con el original antes de hacer la copia.

Saludos.
__________________
Dejenme saber cuando estoy equivocado y cuando estoy en lo cierto dejenme saber si existe una solución mejor.
  #3 (permalink)  
Antiguo 15/10/2010, 14:02
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: Copiar un ArrayList

Hay que tener cuidado con los clone()

Al usarlo, las dos copias apuntan a los mismos objetos (a menos que sean listas de primitivas u objetos que implementen Cloneable), por lo que cualquier cambio que hagas en un objeto de la lista copia, afecta a ese objeto en la lista original.

Puedes modificar el contenido de una lista, pero cuidado al modificar los objetos contenidos.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 15/10/2010, 15:17
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 13
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Copiar un ArrayList

Muchas gracias a los dos :) De momento he probado con clone(); y me he hecho unos ejemplos antes de aplicarlo a mi código, del tipo:

ArrayList lista = new ArrayList();

lista.add(1);
lista.add(2);
lista.add(3);
lista.add(4);
lista.add(5);

ArrayList copia = new ArrayList();

copia = (ArrayList)lista.clone();

System.out.println(lista);
System.out.println(copia);

Object borro = copia.remove(1);

System.out.println(lista);
System.out.println(copia);

Y en principio los resultados me salen bien:
[1, 2, 3, 4, 5] --> lista
[1, 2, 3, 4, 5] --> copia
[1, 2, 3, 4, 5] ---> lista tras eleminar la componente 1 de copia
[1, 3, 4, 5] ---> copia tras eleminar su componente 1

Espero que no falle en otras ocasiones.

La intención que tenía haciéndolo así y no con el bucle for elemento a elemento es intentar disminuir el tiempo de ejecución. Pues para el proyecto que tengo que hacer tengo que trabajar con miles de variables (elementos de la lista).

Etiquetas: arraylist, copiar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:40.