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

1. Обзор

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

Эта статья является частью серии «Java - Back to Basic» здесь, на Baeldung.

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

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

Начнем с преобразования списка в массив с использованием простой 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

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

@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, поэтому его должно быть легко импортировать и запускать как есть.