Создать и инициализировать список со значениями в одной строке

Список Java можно инициализировать различными способами. Однако инициализация списка с несколькими элементами может быть утомительной задачей. В этом руководстве будут рассмотрены различные методы инициализации списка в одну строку, чтобы облегчить вашу работу и сократить шаблонный код.

Метод Список атрибутов Java-версия
Список список = Список.of(“A”, “B”, “C”); Неизменяемый список Ява 9+
Список list = Arrays.asList(“A”, “B”, “C”); Неизменяемый список Ява 2+
ArrayList arraylist = new ArrayList(Arrays.asList(“A”, “B”, “C”)); Изменяемый ArrayList Ява 2+

1. Использование List.of() [Java 9]

Java 9 предоставляет фабричные методы, такие как List.Of(), что делает удобным инициализацию списка с несколькими элементами. Обратите внимание, что созданные экземпляры списка будут неизменяемыми.

List<String> unmodifiableList = List.of("Value1", "Value2", "Value3");

2. Использование Arrays.asList() для преобразования массива в список

Чтобы инициализировать список в однострочном операторе, мы можем получить все элементы в виде массива и создать из них список с помощью метода Arrays.asList().

List<String> MyList = Arrays.asList("Value1", "Value2", "Value3");

3. Сбор элементов потока в список

Java Stream предоставляет несколько фабричных методов, таких как toList() и toCollection(), для удобного сбора элементов Stream в список. Нам нужно перебрать элементы Stream и собрать записи в новый список с помощью коллекторов.

Метод toList() возвращает интерфейс сборщика, который собирает входные данные в новый список.

List<String> MyList = Stream.of("Value1", "Value2", "Value3").collect(Collectors.toList());

Метод toCollection() используется для создания Коллекции с помощью Коллектор. Он возвращает Коллектор, который собирает входные данные в новую Коллекцию, как показано в примере ниже.

List<String> MyList = Stream.of("Value1", "Value2", "Value3").collect(Collectors.toCollection(ArrayList::new));

4. Создание неизменяемого списка

4.1 Использование коллекций

Класс коллекции предоставляет различные методы, которые могут работать с коллекцией, чтобы вернуть список элементов. Одним из таких методов является Collections.unmodifiableList(), который возвращает неизменяемое представление указанного списка. Метод принимает список в качестве параметра, для которого ожидается неизменяемое представление.

List<String> MyList = Collections.unmodifiableList(Arrays.asList("Value1", "Value2", "Value3"));

Если вы ищете список с одним элементом, то мы можем использовать Collections.singletonList(). Он возвращает неизменяемый список, содержащий только один элемент.

List<String> MyList = Collections.singletonList("Value1");

4.2 Использование гуавы

Мы будем использовать библиотеку Guava для инициализации списка в этом подходе. Guava предоставляет различные методы для создания неизменяемых экземпляров списка. В приведенном ниже примере метод ImmutableList.of() возвращает неизменяемый список, содержащий указанные элементы

List<String> MyList = ImmutableList.of("Value1", "Value2", "Value3");

Еще один такой метод — ImmutableList.copyOf(), который также возвращает неизменяемый список, содержащий элементы указанного списка. Обратите внимание, что он возвращает NullPointerException, если какой-либо из элементов равен null.

ImmutableList<String> MyList = ImmutableList.copyOf(Arrays.asList("Value1", "Value2", "Value3"));

5. Заключение

Этот урок Java научил нас инициализировать список в одну строку, используя различные методы от Streams до Guava. Мы также создали неизменяемые списки. Если вам нужно создать неизменяемый список, то инициализация списка с использованием коллекций будет лучшим подходом; в противном случае мы можем использовать Streams или массивы.

Прокрутить вверх