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

如何为Kotlin中Map的所有值加上一个数字?

给Map所有值加1的Kotlin实现

Kotlin里默认的Map是不可变的,没法直接修改它的值,得生成新的Map来存储更新后的数据,下面是几种简单的实现方式:

方法1:用mapValues函数(最简洁)

mapValues专门用来处理Map的值,返回新Map,键保持不变,值按指定逻辑转换:

val originalMap = mapOf("a" to 1, "b" to 2, "c" to 3)
val newMap = originalMap.mapValues { it.value + 1 }
// 结果:{"a":2, "b":3, "c":4}

这里的it代表每个键值对对象,it.value就是原来的数值,直接加1即可。

方法2:用associate函数

如果想更清晰地控制键和值的映射关系,也可以用associate:

val originalMap = mapOf("a" to 1, "b" to 2, "c" to 3)
val newMap = originalMap.associate { (key, value) -> key to (value + 1) }

这个方式会遍历每个键值对,重新生成更新后的键值映射。

注意事项

  • 即便你用的是可变Map(MutableMap),也不建议直接遍历修改(可能触发遍历异常),优先生成新Map或者先收集所有更新值再替换。
  • 要保证Map的值是数值类型(比如Int、Double),否则加1操作会报错。

内容的提问来源于stack exchange,提问作者Gabriel O'Donnell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 22:25:23