Какие дополнительные методы для работы с ассоциативными массивами (maps) появились в Java 8
putIfAbsent()
добавляет пару «ключ-значение», только если ключ отсутствовал:
map.putIfAbsent("a", "Aa");
forEach()
принимает функцию, которая производит операцию над каждым элементом:
map.forEach((k, v) -> System.out.println(v));
compute()
создаёт или обновляет текущее значение на полученное в результате вычисления (возможно использовать ключ и текущее значение):
map.compute("a", (k, v) -> String.valueOf(k).concat(v)); //["a", "aAa"]
computeIfPresent()
если ключ существует, обновляет текущее значение на полученное в результате вычисления (возможно использовать ключ и текущее значение):
map.computeIfPresent("a", (k, v) -> k.concat(v));
computeIfAbsent()
если ключ отсутствует, создаёт его со значением, которое вычисляется (возможно использовать ключ):
map.computeIfAbsent("a", k -> "A".concat(k)); //["a","Aa"]
getOrDefault()
в случае отсутствия ключа, возвращает переданное значение по-умолчанию:
map.getOrDefault("a", "not found");
merge()
принимает ключ, значение и функцию, которая объединяет передаваемое и текущее значения. Если под заданным ключем значение отсутствует, то записывает туда передаваемое значение.
map.merge("a", "z", (value, newValue) -> value.concat(newValue)); //["a","Aaz"]
Oct. 22, 2023, Источник