Преобразуване между масив и списък в 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 (нов T [0]) е предпочитаният начин за използване на метода над toArray (нов T [размер]) . Както доказва Алексей Шипилев в публикацията си в блога, изглежда по-бързо, по-безопасно и по-чисто.

2.2. Използване на Гуава

Нека сега използваме Guava API за същото преобразуване:

@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. Използване на Гуава

Нека сега използваме Guava API за същото преобразуване:

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

3.3. Използване на Commons Collections

И накрая, нека използваме API на Apache Commons Collections - CollectionUtils.addAll, за да попълним елементите на масива в празен Списък:

@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, така че трябва да е лесно да се импортира и да се изпълнява както е.