如何过滤List中谓词在整个其他List上的元素

时间:2017-02-12 01:28:51

标签: scala

如何过滤List l1,其中l1中包含其他List l2中的元素。

给出两个列表ls1,ls2:

val ls1 = List("a b c" , "a c d" , "d e f")
val ls2 = List("a" , "c")

List("a b c" , "a c d")应该被视为“a”& “c”与来自ls1的ls2匹配。

这是我最接近的,但List未被过滤。我不确定如何定义containsInList函数:

scala> val ls1 = List("a b c" , "a c d" , "d e f")
ls1: List[String] = List(a b c, a c d, d e f)

scala> val ls2 = List("a" , "c")
ls2: List[String] = List(a, c)

scala> ls1.filter(f => ls2.contains(f)).foreach(println)

1 个答案:

答案 0 :(得分:2)

您错过exists上的ls2方法:

ls1.filter(f => ls2.exists(f.contains))