代码之家  ›  专栏  ›  技术社区  ›  WISHY

从map kotlin中删除密钥

  •  0
  • WISHY  · 技术社区  · 4 年前

    我有一张地图如下

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

    我有一份钥匙清单 val keyList= listOf("key1","key3")

    我想移除 key 从我的地图上找不到的 keylist

    我目前使用的解决方案是

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

    还有更好的方法吗?

    2 回复  |  直到 4 年前
        1
  •  1
  •   Ivo    4 年前

    你可以这样做更容易:

    val filteredMap = parentMap.filter { keyList.contains(it.key) }
    
        2
  •  1
  •   darth jemico    4 年前

    这可以在更短的时间内实现:

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

    结果是: {key1=value1}