假设我有两张类似这样的地图。
val m1 = Map(1 -> "One", 2 -> "Two", 3 -> "Three")
val m2 = Map(2 -> 2.0, 3 -> 3.0, 4 -> 4.0)
我想根据键获取交集并返回一个表示合并值的元组。结果看起来像这样。
Map(2 -> (Two,2.0), 3 -> (Three,3.0))
我想我可以诉诸类似的东西
val merged = m1 collect {
case (key, value) if m2.contains(key) => key -> (value, m2(key))
}
但是没有“更惯用”的方法来做到这一点吗?我的直觉与我得到的类似Set
val merged = m1.intersect(m2)
m1.keySet.intersect(m2.keySet).map(k => k->(m1(k),m2(k))).toMap
// res0: Map[Int,(String, Double)] = Map(2 -> (Two,2.0), 3 -> (Three,3.0))
获取键的交集,然后map
他们进入一个新的Map
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)