Как обновить карту в одну строку с помощью compute - PullRequest
1 голос
/ 17 мая 2019

Для HashMap<String, LongAdder> named counts, как я могу увеличить его значение независимо от того, присутствует ключ или нет?

Я пробовал это

counts.compute(id, (k, v) -> v == null ? new LongAdder() : v.increment());

Однако v.increment() - это метод void, поэтому лямбда не согласна с BiFunction<? super String, ? super LongAdder, ? extends LongAdder> контрактом.

1 Ответ

4 голосов
/ 17 мая 2019

Поместите increment вне compute:

counts.computeIfAbsent(id, k -> new LongAdder()).increment();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...