Список 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 или массивы.