Konvertera mellan en matris och en lista i Java

1. Översikt

Den här snabba artikeln kommer att visa hur man konverterar mellan en array och en lista med Java-kärnbibliotek, Guava eller Apache Commons-samlingar.

Den här artikeln är en del av "Java - Back to Basic" -serien här på Baeldung.

2. Konvertera lista till matris

2.1. Använda vanlig Java

Låt oss börja med konverteringen från List till Array med vanlig Java :

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

Observera att toArray (ny T [0]) är det föredragna sättet att använda metoden över toArray (ny T [storlek]) . Som Aleksey Shipilëv visar i sitt blogginlägg verkar det snabbare, säkrare och renare.

2.2. Använda Guava

Låt oss nu använda Guava API för samma konvertering:

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

3. Konvertera Array till List

3.1. Använda vanlig Java

Låt oss börja med den vanliga Java-lösningen för att konvertera matrisen till en lista :

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

Observera att detta är en lista med fast storlek som fortfarande kommer att backas upp av matrisen. Om du vill ha en standard ArrayList kan du helt enkelt starta en så:

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

3.2. Använda Guava

Låt oss nu använda Guava API för samma konvertering:

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

3.3. Använda Commons Collections

Och slutligen, låt oss använda Apache Commons Collections - CollectionUtils.addAll API för att fylla i elementen i arrayen i en tom lista:

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

4. Slutsats

Implementeringen av alla dessa exempel och kodavsnitt finns på GitHub - detta är ett Maven-baserat projekt, så det borde vara enkelt att importera och köra som det är.