Создание неизменяемых Map
Создание неизменяемых Map встроенно без Builder.
Сравнение кода
✕ Java 8
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map = Collections.unmodifiableMap(map);
✓ Java 9+
Map<String, Integer> map =
Map.of("a", 1, "b", 2, "c", 3);
Заметили проблему в этом коде? Сообщите нам.
Почему современный подход лучше
Встроенное создание
Не требует временной изменяемой Map.
Неизменяемый результат
Map нельзя изменить после создания.
Без null-ключей/значений
Null-записи немедленно отклоняются.
Старый подход
Паттерн Map-Builder
Современный подход
Map.of()
Начиная с JDK
9
Сложность
Начинающий
Поддержка JDK
Создание неизменяемых Map
Доступно
Широко доступно начиная с JDK 9 (сент. 2017)
Как это работает
Map.of() принимает пары ключ-значение встроенно и возвращает неизменяемую Map. Для более чем 10 записей использовать Map.ofEntries() с парами Map.entry().
Связанная документация
Доказательство