1. Общий обзор
В этом кратком руководстве мы узнаем, как преобразовать массив в список, используя основные библиотеки Java, Guava и Apache Commons Collections.
2. Преобразуйте список в массив
2.1. Использование обычной Java
Давайте начнем с преобразования из списка в массив с использованием обычной Java:
@Test
public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() {
List<Integer> 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. Использование гуавы
Теперь давайте используем Guava API для того же преобразования:
@Test
public void givenUsingGuava_whenListConvertedToArray_thenCorrect() {
List<Integer> 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<Integer> targetList = Arrays.asList(sourceArray);
}
Обратите внимание, что это список фиксированного размера, который по-прежнему будет поддерживаться массивом. Если нам нужен стандартный ArrayList, мы можем просто создать его экземпляр:
List<Integer> targetList = new ArrayList<Integer>(Arrays.asList(sourceArray));
3.2. Использование гуавы
Теперь давайте используем Guava API для того же преобразования:
@Test
public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List<Integer> targetList = Lists.newArrayList(sourceArray);
}
3.3. Использование коллекций Commons
Наконец, давайте воспользуемся API-интерфейсом Apache Commons CollectionUtils.addAll для заполнения элементов массива в пустом списке:
@Test
public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List<Integer> targetList = new ArrayList<>(6);
CollectionUtils.addAll(targetList, sourceArray);
}
Оригинал статьи: https://www.baeldung.com/convert-array-to-list-and-list-to-array