Map.computeIfAbsent()
Вычисляет и кладёт значение, если ключа нет.
Сигнатура
V computeIfAbsent(K key, Function<? super K,? extends V> f)Метод computeIfAbsent() создаёт значение через функцию, если ключа нет. Идеально для карт со списками.
Map<String, List<Integer>> m = new HashMap<>();
m.computeIfAbsent("a", k -> new ArrayList<>()).add(1);
m.computeIfAbsent("a", k -> new ArrayList<>()).add(2); // a -> [1, 2]