Conversión entre una matriz y una lista en Java

1. Información general

Este artículo rápido le mostrará cómo convertir entre una matriz y una lista utilizando bibliotecas centrales de Java, colecciones Guava o Apache Commons.

Este artículo es parte de la serie "Java - Back to Basic" aquí en Baeldung.

2. Convertir lista en matriz

2.1. Usando Java simple

Comencemos con la conversión de List a Array usando Java simple :

@Test public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() { List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5); Integer[] targetArray = sourceList.toArray(new Integer[0]); }

Tenga en cuenta que toArray (new T [0]) es la forma preferida de utilizar el método sobre toArray (new T [size]) . Como demuestra Aleksey Shipilëv en su publicación de blog, parece más rápido, más seguro y más limpio.

2.2. Usando guayaba

Usemos ahora la API de Guava para la misma conversión:

@Test public void givenUsingGuava_whenListConvertedToArray_thenCorrect() { List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5); int[] targetArray = Ints.toArray(sourceList); }

3. Convertir matriz en lista

3.1. Usando Java simple

Comencemos con la solución simple de Java para convertir la matriz en una lista :

@Test public void givenUsingCoreJava_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = Arrays.asList(sourceArray); }

Tenga en cuenta que esta es una lista de tamaño fijo que aún estará respaldada por la matriz. Si desea una ArrayList estándar , simplemente puede crear una instancia de la siguiente manera:

List targetList = new ArrayList(Arrays.asList(sourceArray));

3.2. Usando guayaba

Usemos ahora la API de Guava para la misma conversión:

@Test public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = Lists.newArrayList(sourceArray); } 

3.3. Uso de colecciones comunes

Y finalmente, usemos la API Apache Commons Collections - CollectionUtils.addAll para completar los elementos de la matriz en una Lista vacía:

@Test public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = new ArrayList(6); CollectionUtils.addAll(targetList, sourceArray); }

4. Conclusión

La implementación de todos estos ejemplos y fragmentos de código se puede encontrar en GitHub : este es un proyecto basado en Maven, por lo que debería ser fácil de importar y ejecutar como está.