Como atualizar um mapa em uma única linha com cálculo

Jorge Lavin:

Para um HashMap<String, LongAdder> named counts, como eu pode incrementar seu valor independentemente da chave estar presente ou não?

Eu tentei isso

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

No entanto v.increment()é um voidmétodo, portanto, que lambda não concorda com o BiFunction<? super String, ? super LongAdder, ? extends LongAdder>contrato.

Andy Turner:

Coloque o incrementlado de fora a compute:

counts.computeIfAbsent(id, k -> new LongAdder()).increment();

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=331760&siteId=1
Recomendado
Clasificación