Konwersja między tablicą a listą w języku Java

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.