Какие дополнительные методы для работы с ассоциативными массивами (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, Источник

Примеры ответов: