提问人:k314159 提问时间:11/15/2023 更新时间:11/15/2023 访问量:41
过滤映射以仅包含给定的键集
Filter a map to have only the given set of keys
问:
我有一个名叫 ,还有一个命名的 .我想创建一个子映射,仅包含键位于 中的那些条目。我可以看到以下几种方式:Map<K, V>
myMap
List<K>
myList
myList
val newMap1 = myList.associateWith { myMap[it] }
val newMap2 = myMap.filterKeys { it in myList }
val newMap3 = myMap - (myMap.keys - myList)
val newMap4 = myMap.toMutableMap().apply { keys.retainAll(myList) }
不幸的是,这些似乎都没有直接传达我想做什么。我一直在寻找类似的东西,但找不到。有没有类似的方法?val newMap = myMap.retainAll(list)
答: 暂无答案
评论
myMap.filterKeys { it in myList }
retainAll()
在我看来,这听起来像是一个变异操作。另外,它没有提到“钥匙”,所以我不确定它如何保留项目,我个人更喜欢.请注意,如果它对您更有意义,您可以使用。或者,您可以创建一个扩展,通过提供密钥集合来筛选密钥。filterKeys()
myMap.filterKeys(myList::contains)
retainAll
filterKeys