#java #java-9
#java #java-9
Вопрос:
Java 9 вводит фабричные методы для создания неизменяемых списков с помощью List.of
.
Что больше подходит для создания неизменяемого списка из одного элемента?
List<String> immutableList1 = List.of("one");
List<String> immutableList2 = Collections.singletonList("one");
Комментарии:
1. Я не уверен, что лучшая практика
singletonList
примет только один элемент. но нетList.of
.2. Я имею в виду, что предпочтительнее при создании неизменяемого списка с одним элементом. Я предпочитаю использовать
List.of
, но это больше подходит для данного варианта использования с точки зрения производительности?
Ответ №1:
Предпочитаю использовать заводской метод
List<String> immutableList1 = List.of("one");
Поскольку они запрещают нулевые элементы, это одно из преимуществ, а также фабричные методы в List
интерфейсе удобны для добавления нескольких объектов и создания неизменяемого списка
Они запрещают нулевые элементы. Попытки создать их с нулевыми элементами приводят к исключению NullPointerException.
Где Collections.singletonList
допускается null
значение
List<String> l = Collections.singletonList(null);
System.out.println(l); //[null]
Комментарии:
1. Имейте в виду, что даже вызов
contains(null)
не поддерживается в списке, созданном с помощьюList.of(...)