当值是列表时,kotlin将对添加到映射

问题描述 投票:2回答:1

我知道这是基本的,但我可以用更短的方式做到这一点:

val ss = mutableMapOf<String, MutableList<String>>()
if(ss["new_key"] != null){
    ss["new_key"]!!.add("NEW")
}
else{
    ss["new_key"] = mutableListOf("OLD")
}

这基本上检查地图中是否存在密钥

如果是,则将元素附加到列表(值),否则创建新的键值对

我不能在旅途中创建新密钥吗?像这样:

ss["new_key"].add("OLD")
ss["new_key"].add("NEW")
dictionary kotlin
1个回答
5
投票

您至少有两个选择:

  • 使用computeIfAbsentss.computeIfAbsent("new_key") { mutableListOf() } += "NEW"
  • 使用getOrPutss.getOrPut("new_key", ::mutableListOf) += "NEW"
© www.soinside.com 2019 - 2024. All rights reserved.