Преобразование массива в изменяемые, неизменяемые и немодифицируемые списки

Изучите различные и полезные способы преобразования массива в список в 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);
Прокрутить вверх