flatMap 和 map 都是 对集合内的元素进行操作的函数,两者的区别主要体现在数据类型和返回结果两方面。
数据类型方面, map 的数据只要是集合就行而 flatMap 则需要包含集合的集合
返回结果方面 map 返回的是一个与处理前集合相对应的集合,原先集合内有多少元素,返回结果内就有多少元素;而 flatMap 则会在原先 map 的基础上再做一步数据扁平化的操作,将集合内的元素拼接成一个字符串
具体见代码示例
先看一下 map 的示例
1 | def main(args: Array[String]): Unit = { |
再来看一下 flatMap 的示例
1 | def main(args: Array[String]): Unit = { |
从 result3 和 result4 的相应操作可以看出 map 和 flatMap 的区别就是差一步数据扁平化,如果将 map 的执行结果进行合并就是 flatMap