Создание неизменяемых Set
Создание неизменяемых Set одним фабричным вызовом.
Сравнение кода
✕ Java 8
Set<String> set =
Collections.unmodifiableSet(
new HashSet<>(
Arrays.asList("a", "b", "c")
)
);
✓ Java 9+
Set<String> set =
Set.of("a", "b", "c");
Заметили проблему в этом коде? Сообщите нам.
Почему современный подход лучше
Лаконично
Одна строка вместо трёх вложенных вызовов.
Обнаруживает дубликаты
Выбрасывает исключение при случайной передаче повторяющихся элементов.
Неизменяемый
Нельзя добавлять или удалять элементы после создания.
Старый подход
Многословное обёртывание
Современный подход
Set.of()
Начиная с JDK
9
Сложность
Начинающий
Поддержка JDK
Создание неизменяемых Set
Доступно
Широко доступно начиная с JDK 9 (сент. 2017)
Как это работает
Set.of() создаёт по-настоящему неизменяемое Set, которое отклоняет null-элементы и дубликаты при создании. Больше никакого обёртывания изменяемых Set.
Связанная документация
Доказательство