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