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

Publicado: febrero 12, 2015 de elvenbyte en Tecnología
Etiquetas:,

array2d

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.

comentarios
  1. pepe, que no lo ves? dice:

    También funciona así:

    ArrayList stockList = new ArrayList(); // 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 = stockList.toArray(new String[0]);

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

    xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

    Me gusta

  2. David dice:

    Debe de haber unas cuantas formas más seguramente.

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s