590просмотров
23.9%от подписчиков
20 января 2026 г.
Score: 649
☕️ Java Tips: Инициализация карты в одну строку с Map.of() Помните, как раньше приходилось создавать Map с заранее известными значениями? Куча вызовов .put(), статические блоки или (не дай бог) двойные фигурные скобки. Начиная с Java 9, у нас есть красивый и лаконичный способ - Map.of(). Разберем, как это работает и, главное, чего нельзя делать. 🆚 До и После Как было раньше (The Old Way): Map<String, Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
// Результат: много строк кода ради простых данных Как сейчас (The Modern Way): Map<String, Integer> map = Map.of( "One", 1, "Two", 2, "Three", 3
);
// Результат: чисто, читаемо, одна инструкция ⚠️ Важные нюансы (Gotchas) Использование Map.of() - это не просто синтаксический сахар для HashMap. Это создание неизменяемой (Immutable) структуры. 1. Нельзя менять данные
Попытка добавить или удалить элемент приведет к ошибке. var colors = Map.of("Red", "#FF0000");
colors.put("Blue", "#0000FF"); // ❌ Ошибка: UnsupportedOperationException 2. Никаких null
В отличие от HashMap, здесь нельзя использовать null ни в ключах, ни в значениях. Map.of("Key", null); // ❌ Ошибка: NullPointerException 3. Лимит в 10 пар
Метод Map.of() перегружен для приема до 10 пар ключ-значение. Если нужно больше, используйте Map.ofEntries(): Map.ofEntries( Map.entry("k1", "v1"), Map.entry("k2", "v2"), // ... хоть 100 пар Map.entry("k100", "v100")
); 🚀 Когда использовать? Идеально подходит для конфигураций, статических словарей, тестовых данных и справочников, которые не меняются во время работы программы. #Java #CodeTips #Programming #Java9 👉 @java_geek