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.