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.