Conversione tra un array e un elenco in Java

1. Panoramica

Questo rapido articolo mostrerà come convertire tra un array e un elenco utilizzando le librerie Java di base, le collezioni Guava o Apache Commons.

Questo articolo fa parte della serie "Java - Back to Basic" qui su Baeldung.

2. Converti elenco in array

2.1. Utilizzando Plain Java

Cominciamo con la conversione da List a Array utilizzando Java semplice :

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

Si noti che toArray (new T [0]) è il modo preferito per utilizzare il metodo rispetto a toArray (new T [size]) . Come dimostra Aleksey Shipilëv nel suo post sul blog, sembra più veloce, più sicuro e più pulito.

2.2. Utilizzando Guava

Usiamo ora l'API Guava per la stessa conversione:

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

3. Converti array in elenco

3.1. Utilizzando Plain Java

Cominciamo con la semplice soluzione Java per convertire l'array in un List :

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

Si noti che questo è un elenco di dimensioni fisse che sarà comunque supportato dall'array. Se vuoi un ArrayList standard puoi semplicemente istanziarne uno in questo modo:

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

3.2. Utilizzando Guava

Usiamo ora l'API Guava per la stessa conversione:

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

3.3. Utilizzo delle raccolte Commons

Infine, utilizziamo le collezioni Apache Commons - CollectionUtils.addAll API per riempire gli elementi dell'array in un elenco vuoto:

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

4. Conclusione

L'implementazione di tutti questi esempi e frammenti di codice può essere trovata su GitHub : questo è un progetto basato su Maven, quindi dovrebbe essere facile da importare ed eseguire così com'è.