Изучите различные и полезные способы преобразования массива в список в Java. В этом примере мы будем использовать классы Java 8 и библиотеку Google guava для создания ArrayList из элементов заданного массива.
1. Преобразовать массив в неизменяемый список
Если вы хотите создать неизменяемый экземпляр List, подкрепленный элементами массива, следуйте методу ниже. Мы не можем добавлять или удалять новые объекты в неизменяемом List, но мы можем изменять объекты, хранящиеся в нем, используя ссылки на объекты.
1.1 Использование List.of() – Java 9
Начиная с Java 9, мы можем использовать методы List.of(), которые возвращают неизменяемый список, содержащий элементы массива.
List<String> namesList = List.of(namesArray);
1.2 Использование Collections.unmodifiableList() – Java 8
До версии Java 8 для получения немодифицируемого списка, содержащего элементы массива, используйте Collections.unmodifiableList().
String[] namesArray = new String[] {"alex", "brian", "charles", "david"};List<String> namesList = Collections.unmodifiableList( Arrays.asList(namesArray) );
1.3 Использование потоков Java 8
Steam API также является отличным вариантом для сбора массива элементов в List. Потоки позволяют нам также фильтровать и выполнять промежуточные операции.
List<String> namesList = Arrays.stream(namesArray).collect(Collectors.toUnmodifiableList());
2. Преобразовать массив в неизменяемый список
Неизменяемый список не позволяет добавлять, удалять или изменять хранящиеся в нем элементы.
Если в вашем проекте есть библиотека guava, то вы также можете использовать метод ImmutableList.copyOf() для получения неизменяемого списка из массива.
List<String> namesList = ImmutableList.copyOf( namesArray );
3. Преобразовать массив в изменяемый список
Если вы хотите создать экземпляр изменяемого списка, подкрепленный элементами массива, следуйте методу ниже. Мы можем добавлять и удалять новые элементы в изменяемом списке, а также изменять существующие элементы.
3.1 Использование Arrays.asList()
Используйте Arrays.asList() для получения изменяемого списка из массива элементов.
List<String> namesList = Arrays.asList(namesArray);
3.2 Использование Lists.newArrayList() из Guava
Опять же, если в вашем проекте есть библиотека guava, вы также можете использовать этот метод для получения изменяемого arraylist из массива.
ArrayList<String> namesList = Lists.newArrayList(namesArray);