【发布时间】:2020-12-05 14:02:13
【问题描述】:
我经常要写这样的结构:如果键在那里,获取值并做一些事情,否则放一个新值(有时需要额外的处理)有没有办法简化这段代码?
Map<String, Integer> map = new HashMap<>();
if (map.containsKey("someKey")) {
// get the value and do something
map.merge("someKey", 3, Integer::sum);
} else {
map.put("someKey", 0);
}
【问题讨论】:
-
这取决于什么是“获得价值并做某事”。对于您的示例,您可以将 if else 替换为
map.merge("someKey", 0, (x, y) -> x + y + 3);