list - Scala 中具有两个值的匹配列表

标签 list scala functional-programming match

我想在 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/

相关文章:

python - 从列表值中获取所有组合

Java功能流: generate a set of random points between distance A and B from each other

haskell - Haskell 中的字节串 : should I use Put or Builder?

java - Scala:围绕建议或 Python 装饰器实现 Java 的 AspectJ

scala - 优化一个免费的 Monad

list - Flutter:通用列表处理不同的键值对

python - 在字典中的另一个列表中查找列表的最大长度

java 转换列表

java - Scala Slick 3.0 java8 OffsetDateTime 和 Timestamp 之间的隐式映射

scala - 如何在 Android 2.10.1 中获取 Option[T] 字段类型?