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

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

1. обзор

В этой быстрой статье будет показано, какconvert between an Array and a List использовать основные библиотеки Java, Guava или коллекции Apache Commons.

Эта статья является частьюthe “Java – Back to Basic” series здесь для примера.

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

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

Начнем с преобразованияList в массивusing plain java:

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

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

Давайте теперь используемthe Guava API для той же конверсии:

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

3. Преобразовать массив вList

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

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

@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. Использование гуавы

Давайте теперь используемthe Guava API для той же конверсии:

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

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

И, наконец, давайте воспользуемся APIApache 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. Заключение

Реализация всех этих примеров и фрагментов кодаcan be found over on GitHub - это проект на основе Maven, поэтому его должно быть легко импортировать и запускать как есть.