1. Przegląd
Ten krótki artykuł pokaże, jak konwertować między tablicą a listą przy użyciu podstawowych bibliotek Java, kolekcji Guava lub Apache Commons.
Ten artykuł jest częścią serii „Java - Back to Basic” tutaj w Baeldung.
2. Konwertuj listę na tablicę
2.1. Korzystanie ze zwykłej Java
Zacznijmy od konwersji z listy na tablicę przy użyciu zwykłej Javy :
@Test public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() { List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5); Integer[] targetArray = sourceList.toArray(new Integer[0]); }
Zauważ, że toArray (nowe T [0]) jest preferowanym sposobem użycia metody zamiast toArray (nowy T [rozmiar]) . Jak dowodzi Aleksey Shipilëv na swoim blogu, wydaje się to szybsze, bezpieczniejsze i czystsze.
2.2. Korzystanie z guawy
Użyjmy teraz interfejsu Guava API do tej samej konwersji:
@Test public void givenUsingGuava_whenListConvertedToArray_thenCorrect() { List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5); int[] targetArray = Ints.toArray(sourceList); }
3. Konwertuj tablicę na listę
3.1. Korzystanie ze zwykłej Java
Zacznijmy od prostego rozwiązania w Javie do konwersji tablicy na listę :
@Test public void givenUsingCoreJava_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = Arrays.asList(sourceArray); }
Zauważ, że jest to lista o stałej wielkości, która nadal będzie obsługiwana przez tablicę. Jeśli chcesz mieć standardową ArrayList , możesz po prostu utworzyć jej instancję w następujący sposób:
List targetList = new ArrayList(Arrays.asList(sourceArray));
3.2. Korzystanie z guawy
Użyjmy teraz interfejsu Guava API do tej samej konwersji:
@Test public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = Lists.newArrayList(sourceArray); }
3.3. Korzystanie z kolekcji Commons
Na koniec użyjmy Apache Commons Collections - CollectionUtils.addAll API, aby wypełnić elementy tablicy w pustej liście:
@Test public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = new ArrayList(6); CollectionUtils.addAll(targetList, sourceArray); }
4. Wniosek
Implementację wszystkich tych przykładów i fragmentów kodu można znaleźć na GitHub - jest to projekt oparty na Maven, więc powinien być łatwy do zaimportowania i uruchomienia w obecnej postaci.