scala flatmap
时间: 2023-06-14 07:02:39 浏览: 105
scala学习demo
在 Scala 中,`flatMap` 是一个高阶函数,它接受一个函数作为参数并返回一个新的集合。`flatMap` 通常用于将一个嵌套的集合转换为一个扁平的集合。
具体来说,`flatMap` 对于集合中的每个元素都会应用一个函数,并将结果扁平化到一个新的集合中。如果函数返回的是一个集合,那么该集合中的元素将被添加到新集合中。
以下是一个使用`flatMap`的示例:
```scala
val list = List(List(1, 2), List(3, 4))
val flatList = list.flatMap(x => x)
println(flatList) //输出: List(1, 2, 3, 4)
```
在上面的示例中,`flatMap` 接受一个函数 `x => x`,这个函数将每个子列表都返回并将它们扁平化到一个新的列表中。最终得到的 `flatList` 是一个扁平化的列表,其中包含原始列表中所有的元素。
另一个使用 `flatMap` 的常见场景是在集合中应用过滤器后进行映射。
```scala
val list = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val result = list.filter(_ % 2 == 0).flatMap(x => List(x, x * 2))
println(result) //输出: List(2, 4, 4, 8, 6, 12, 8, 16, 10, 20)
```
在上面的示例中,`filter` 函数过滤出偶数,然后 `flatMap` 函数将这些偶数和它们的两倍映射到一个新的列表中。最终得到的 `result` 是一个扁平化的列表,其中包含了原始列表中所有的偶数及其两倍。
阅读全文