如何获取地图的一个子集?
假设我们有
val m: Map[Int, String] = ...
val k: List[Int]
凡在所有按键k
中存在的m
。
现在,我想获得的地图一分节m
只用对的,其关键是在列表k
。
像m.intersect(k)
但intersect
未在地图上定义的。
一种方法是使用filterKeys
: m.filterKeys(k.contains)
但是,这可能会有点慢,因为在原始地图列表中搜索必须做每个键。
我能想到的另一种方式是k.map(l => (l, m(l)).toMap
。这里魏某只是通过我们真正感兴趣的,不要使搜索键重复。
有没有更好的(内置)的方式?