我有两个包含String作为键的Map和一个特定对象类型的List作为值。
val map1 = Map[String, List[TypeA]]
val map2 = Map[String, List[TypeA]]
TypeA定义为:
case class TypeA(String, TypeB)
trait TypeB
case class LowerB(value: Integer) extends TypeB
case class UpperB(value: Integer) extends TypeB
我需要的是找到所有TypeB对象,其LowerB值大于上面定义的Map中每个String键的UpperB值。我有一个模糊的想法,如何做到这一点,但不知何故搞乱了返回类型:
问题在于,在第2步,我应该怎么做案例无?这会弄乱我的回报类型。有什么建议吗?
答案 0 :(得分:0)
你可以实现第2步,以及像这样的zip值:
val r = map1.map{ case (k1, v1) => v1 zip map2.getOrElse(k1, List[TypeA]()) }
// returns Iterable[List[(TypeA, TypeA)]]