Clonar un ArrayList

10/Oct/2021 Java , Deja un comentario
Programación en Java

Si estamos manejando un ArrayList y queremos manipular su contenido, mientras que por otro lado queremos mantener una copia de seguridad del mismo, nos vendrá muy bien el saber cómo clonar un ArrayList en Java.

Hay que recordar que la clase ArrayList representa una estructura de elementos en forma de array, los cuales, pueden ser redimensionados. Es decir, puede crecer o decrecer de cantidad de elementos a lo largo de la vida del programa.

Para definir un ArrayList de tipo String haremos lo siguiente:

ArrayList<String> list = new ArrayList<String>();

Si queremos que el ArrayList tenga contenido podemos ir añadiendo elementos mediante el método .add()

// Añadimos elementos
list.add("Marta");
list.add("Luis");
list.add("Francisco");

Una vez que tenemos este ArrayList inicial podemos clonarlo y crear un nuevo ArrayList que contenga los mismos elementos. Para poder clonar un ArrayList en Java deberemos de acudir al método .clone() el cual aplicaremos sobre el ArrayList original y nos devolverá un ArrayList nuevo. Veamos cómo sería el código:

ArrayList<String> list2 = (ArrayList<String>)list.clone();

Si recorremos este nuevo ArrayList podremos comprobar que el número de elementos es exactamente el mismo que el que tenía el ArrayList inicial. Podemos hacer esa comprobación de la siguiente manera:

// Obtenemos un Iterador y recorremos la lista.
iter = list2.iterator();
while (iter.hasNext())
  System.out.println(iter.next());

Ahora ya son dos ArrayList totalmente diferentes, es decir, cualquier alteración de contenido que hagamos en uno no se replica en otro. Puedes comprobarlo borrando un elemento del ArrayList inicial y volviendo a listar los elementos.

list.remove(0);

De esta forma tan sencilla hemos conseguido clonar un ArrayList en Java.

 

Vídeos sobre Java


¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.