Cómo convertir un ArrayList en un array clásico

Publicado el 12 febrero 2015 por Elvenbyte @elvenbyte

Desde que existen las colecciones, los ArrayList, los mapas, etc, en java, parece un despropósito trabajar con las matrices clásicas. El motivo es la cantidad de herramientas y facilidades que el ArrayList nos da.

En primer lugar no necesitamos declarar el tamaño que tendrá nuestro array, ya que las colecciones son dinámicas. Tenemos métodos que nos facilitan el mantenimiento de sus elementos (métodos .add(), .remove(), .set?()…), y el acceso a los mismos a través del tipo que estemos utilizando.

Sin embargo, hay veces que estaremos obligados a utilizar arrays clásicos a la fuerza, tanto para leer los datos de ellos, como para guardarlos así. A mi me ha pasado, y como me niego a trabajar los datos como array clásico, más que en última instancia, lo que hago es que leo el dato, lo trato siempre como ArrayList<deloquesea>, y vuelvo a ponerlo en su deloquesea[], para que nos entendamos.

Pero hacer esta transformación puede ser muy tediosa, si no se sabe cómo, y ahí que voy a explicarlo. Utilizaré para ello el ejemplo de conversión de un ArrayList<String> a un String[], por ser quizás uno de los más clásicos, o más utilizados.

ArrayList<String> stockList = new ArrayList<String>(); // Creamos el objeto.

// Añadimos datos a la colección para poder verlos después de la transformación.
stockList.add(“stock1″);
stockList.add(“stock2″);

// Declaramos el array clásico, teniendo en cuenta que necesitamos indicarle cuál va a ser el tamaño.
String[] stockArr = new String[stockList.size()];

// Esta es la conversión propiamente dicha, la línea más importante.
stockArr = stockList.toArray(stockArr);

// Con este bucle simplemente comprobamos que la transformación se ha realizado correctamente.
for(String s : stockArr)
System.out.println(s);

Creo que siguiendo los comentarios que he incorporado hay poco más que explicar. En cualquier caso, trataré de resolver cualquier duda que surja a partir de la misma.

Espero que os haya gustado el artículo. No dudéis en compartirlo.