从地图 kotlin 中删除键

Remove key from map kotlin

我有一张地图如下

  val parentMap= mutableMapOf<String,String>()
    parentMap["key1"]="value1"
    parentMap["key2"]="value2"
    parentMap["key3"]="value3"

我有一个键列表val keyList= listOf("key1","key3")

我想从我的 keylist

中不存在的地图中删除 key

我目前使用的方案是

val filteredMap= mutableMapOf<String,String>()
    keyList.forEach {
        if(parentMap.containsKey(it))
            filteredMap[it]=parentMap[it]!!
    }
    println(filteredMap)

还有更好的方法吗?

你可以这样做更容易:

val filteredMap = parentMap.filter { keyList.contains(it.key) }

这个可以再短一点:

val map = mapOf(
     "key1" to "value1",
     "key2" to "value2",
     "key3" to "value3"
)
 
val list = listOf("key1")
 
val filteredMap = map.filterKeys(list::contains)

结果是:{key1=value1}