В Java 8 есть новые методы на Map
, которые вы можете использовать с лямбдами для решения этой проблемы. Первая альтернатива, compute
:
a.compute(key, (k, v) -> v+1);
Обратите внимание, что это работает, только если хеш инициализирован для всех возможных ключей.
Если это не гарантировано, вы можете изменить приведенный выше код на:
a.compute(key, (k, v) -> v == null ? 1 : v + 1);
Или используйте метод merge
(который я бы предпочел):
a.merge(key, 1, (a, b) -> a + b);
Может быть, есть и другие лямбда-методы, о которых я не знаю.