You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用一行代码实现Map的条目创建与更新?

Java 中实现类似 C++ map dict[key] += 1 的简洁写法

在 Java 8 及以上版本,有几种简洁的方式实现你要的效果,无需手动检查键是否存在:

1. 推荐:使用 Map.merge() 方法

这是最贴合需求的写法,一行代码完成“不存在则插入默认值,存在则累加”的逻辑:

Map<String, Integer> map = new HashMap<>();
// 键不存在时插入1,存在则旧值加1
map.merge("targetKey", 1, Integer::sum);

merge 的第三个参数是一个 BiFunction,这里用 Integer::sum 表示将旧值和传入的默认值(1)相加,作为新的 value。

2. 使用 computeIfAbsent() 结合自增

先确保键存在(不存在则设为0),再完成累加操作:

// 先保证键对应的值存在(不存在则设为0),再取出加1后放回
map.put("targetKey", map.computeIfAbsent("targetKey", k -> 0) + 1);

computeIfAbsent 会在键不存在时执行 lambda 创建默认值,返回当前键对应的 value,之后我们加1再 put 回 map。

3. Java 8 之前的写法(手动检查)

如果你的项目还在使用 Java 8 之前的版本,就只能手动判断键是否存在:

Integer current = map.get("targetKey");
if (current == null) {
    map.put("targetKey", 1);
} else {
    map.put("targetKey", current + 1);
}

内容的提问来源于stack exchange,提问作者FIRES_ICE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:55:09