Рубрики
Без рубрики

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

Как преобразовать массив в список с помощью простых коллекций Java, Guava или Apache Commons.

Автор оригинала: Eugen Paraschiv.

1. Обзор

В этой краткой статье будет показано, как преобразовать массив в список с помощью основных библиотек Java, коллекций Guava или Apache Commons.

Эта статья является частью серии “Java – Back to Basic” здесь, на Baeldung.

2. Преобразование списка в массив

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

Давайте начнем с преобразования из List в массив с помощью простой Java :

@Test
public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() {
    List 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. Использование гуавы

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

@Test
public void givenUsingGuava_whenListConvertedToArray_thenCorrect() {
    List 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 targetList = Arrays.asList(sourceArray);
}

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

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

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

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

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

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

И, наконец, давайте использовать Apache Commons CollectionsCollectionUtils.addAll API для заполнения элементов массива в пустой список:

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

4. Заключение

Реализацию всех этих примеров и фрагментов кода можно найти на GitHub – это проект на основе Maven, поэтому его должно быть легко импортировать и запускать как есть.