java - 如何使用计算在一行中更新地图
问题描述
对于 a HashMap<String, LongAdder> named counts
,无论键是否存在,我如何增加它的值?
我试过这个
counts.compute(id, (k, v) -> v == null ? new LongAdder() : v.increment());
然而v.increment()
是一种void
因此 lambda 不同意BiFunction<? super String, ? super LongAdder, ? extends LongAdder>
合同的方法。
解决方案
把increment
外面的compute
:
counts.computeIfAbsent(id, k -> new LongAdder()).increment();
推荐阅读
- java - 如何制作对象的深层副本,该对象在java中的对象内部具有其类型的引用
- excel - 试图从网站抓取网页到 excel,然后转换成 word doc
- r - 尝试在 R 中重新创建特定类型的数据透视表
- jenkins - 如何在 Github 组织插件中使用两个因素
- ios - Swift iOS CollectionView xib 属性为零
- jakarta-ee - Keycloak 反向通道注销
- html - 如何应用比例效果,但不是悬停
- javascript - ObjectConstructor 类型上不存在属性“条目”
- cassandra - 数据中心异步复制有多快?
- c# - create new object within C# Linq syntax on Select