Scala 使用两张地图获得第三张地图
使用 scala 2.12 ,将 map1 的值与 map2 的键连接起来得到 map2 的值 不知道如何实现。请帮忙
val t1=Map("K1"->"tempV1" , "K2"->"tempV2" , "K3"-> "tempV3","K4"->"tempV4")
val t2=Map("tempV1"->"V1" , "tempV2"->"V2" , "tempV3"-> "V3","someV4"->"V4")
//expected
Map("K1"->"V1","K2"->"V2","K3"->"V3")
回答
t1.flatMap{case (k,v) => t2.get(v).map(k -> _)}
或者,等价的表达式:
for {
(k,v1) <- t1
v2 <- t2.get(v1)
} yield (k,v2)