Преобразование между массивом и списком в Java

1. Общий обзор

В этом кратком руководстве мы узнаем, как преобразовать массив в список, используя основные библиотеки Java, Guava и Apache Commons Collections.

 В этом кратком руководстве мы узнаем, как преобразовать массив в список, используя основные библиотеки Java, Guava и Apache Commons Collections.

2. Преобразуйте список в массив

2.1. Использование обычной Java

Давайте начнем с преобразования из списка в массив с использованием обычной Java:

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

Обратите внимание, что для нас предпочтительнее использовать метод toArray(new T[0]), а не toArray(new T[size]). Как доказывает Алексей Шипилев в своем блоге, это быстрее, безопаснее и чище.

2.2. Использование гуавы

Теперь давайте используем Guava API для того же преобразования:

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

3. Преобразуйте массив в список

3.1. Использование простой Java

Давайте начнем с простого Java-решения для преобразования массива в список:

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

Обратите внимание, что это список фиксированного размера, который по-прежнему будет поддерживаться массивом. Если нам нужен стандартный ArrayList, мы можем просто создать его экземпляр:

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

3.2. Использование гуавы

Теперь давайте используем Guava API для того же преобразования:

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

3.3. Использование коллекций Commons

Наконец, давайте воспользуемся API-интерфейсом Apache Commons CollectionUtils.addAll для заполнения элементов массива в пустом списке:

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

Оригинал статьи: https://www.baeldung.com/convert-array-to-list-and-list-to-array