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

时间:2018-03-02 17:18:57

标签: dictionary kotlin

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

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")

1 个答案:

答案 0 :(得分:5)

您至少有两个选项:

  • 使用computeIfAbsent

    ss.computeIfAbsent("new_key") { mutableListOf() } += "NEW"
    
  • 使用getOrPut

    ss.getOrPut("new_key", ::mutableListOf) += "NEW"