我想在 Scala 中编写一个匹配具有两个值的列表的算法。
例如,如果我有以下列表:
val list = List(1, 3, 6, 8, 9, 14, 18)
并且有这两个值:
val a = 4
val b = 14
我想得到这个列表:
val result = List(6, 8, 9, 14)
如果考虑使用 Scala 的 intersect
方法,但那只适用于两个列表。
我也考虑过使用 for 循环,但那是行不通的。
所以我最终不知道如何解决这个问题。
谁能帮帮我?
最佳答案
哦,但是你可以使用intersect
,就像这样:
scala> List(1, 3, 6, 8, 9, 14, 18) intersect (4 to 14)
res1: List[Int] = List(6, 8, 9, 14)
而且你可以颠倒顺序,但是得到的集合类型是不同的。
scala> 4 to 14 intersect List(1, 3, 6, 8, 9, 14, 18)
res2: scala.collection.immutable.IndexedSeq[Int] = Vector(6, 8, 9, 14)
要点:Scala 有许多不同的集合类型,但其中许多确实可以很好地协同工作。
关于list - Scala 中具有两个值的匹配列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37669544/