通过Scala中的函数过滤列表

时间:2013-11-28 18:19:28

标签: list scala filter

我需要按照集合的结果过滤列表。 例如,这有效:

(List(1, 2, 3, 4, 5, 6, 7, 8, 9) filter (_!= 1))

产出清单(2,3,4,5,6,7,8,9) 但是我需要通过两个返回集合的函数来过滤此列表(例如,它返回Set(1,2)),并且当前列表需要通过这些函数进行过滤。

有什么想法可以做到这一点? 我已经尝试过使用&&但它不起作用

提前致谢。

1 个答案:

答案 0 :(得分:1)

试试这个,

scala> val raw = Set(1,2)
raw: scala.collection.immutable.Set[Int] = Set(1, 2)

scala> val column = Set(3,4)
column: scala.collection.immutable.Set[Int] = Set(3, 4)

scala> val l = (1 to 9).toList
l: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9)

scala> l.filterNot(x => raw(x) || column(x))
res9: List[Int] = List(5, 6, 7, 8, 9)

根据@ 4e6的评论,

scala> l.filterNot(raw ++ column)
res9: List[Int] = List(5, 6, 7, 8, 9)