.map()
和.flatMap()
应该可以解决问题,这正是for
理解的全部内容。
(for {
(k,v) <- myFirstMap
mcc <- myLookUpMap.get(k)
} yield (mcc,v.toString)).toIndexedSeq
,
myFirstMap.collect { case (k,_) if myFilterMap.contains(k) => myFilterMap(k)}
,
也许
myFirstMap.map {
case (key,value) =>
myLookUpMap.get(key).map( found => Tuple2( found,value.toString ) )
}.withFilter(_.nonEmpty).map( _.get ).toIndexedSeq
...或更可读...
val mbTuples = myFirstMap.map {
case (key,value.toString ) )
}
val foundTuples = mbTuples.withFilter(_.nonEmpty).map( _.get )
val tupleSeq = foundTuples.toIndexedSeq
,
或者这种方法怎么样:
val commonKeys = myFirstMap.keySet().intersect( myLookUpMap.keySet() )
val tupleSeq = commonKeys.map { case ( key,value ) =>
( myLookUpMap(key),value.toString )
}.toIndexedSeq
,
您可以使用flatMap过滤集合中的所有内容
myFirstMap.flatMap { case (key,value) => myLookUpMap.get(key).map(entity => (entity,value.toString)) }
本文链接:https://www.f2er.com/3154571.html