list frente a arrays

List y arrays son intercambiables, con la principal diferencia de que en un array hay que indicar el tamaño al construirlo, mientras que las List se adaptan automáticamente al número de datos que contienen.

arrays

List

String[] x;

List<String> x;

x = new String[1000];

x = new ArrayList<String>();

... = x[20];

... = x.get(20);

x[20] = "1492";

x.set(20, "1492");

 

x.add("2001");

 

Si necesita un array y tiene una lista:

java.util.List list = Arrays.asList(array);

Trabaja sobre Object:

public static List asList(Object[] a)

Si tiene una lista y necesita un array:

Object array[] = list.toArray();

Trabaja sobre Object:

public Object[] toArray()

Si ya tiene el array creado y desea llenarlo con los elementos de la lista:

public Object[] toArray(Object[] a)

Una ventaja de este último método es que respeta el tipo de los elementos, lo que combinado con el hecho de que crea el array si no existe o si no tiene espacio para todos los elementos de la lista, permite escribir cosas de este tipo:

String[] x = (String[]) v.toArray(new String[0]);

Ver “¿arrays o listas?

Temas relacionados

23. List<E> (interface) java.util.List<E>