Scala集合的foreach和map flatMap方法区别介绍

scala | 2019-09-13 10:02:39

Scala集合都有foreach和map flatMap方法,都是用来遍历当前集合,但他们都有不同点,foreach没有返回值,map可以返回一个新集合,flatMap可以返回把嵌套的集合展开。


1.map

map的参数是一个函数,List中的每个元素都应用于这个函数,并且返回一个新的集合。

val names=List("a","b","c")

可以用

names.map(_.toUpperCase)

得到List("A","B","C")


2、foreach

foreach和map相似,只不过它没有返回值,foreach只要是为了对参数进行作用。

比如 

names.foreach{name=>println(name)}


3、flatten

flatten可以把嵌套的结构展开.

scala> List(List(1,2),List(3,4)).flatten
res0: List[Int] = List(1, 2, 3, 4)


4、flatmap

flatMap结合了map和flatten的功能。接收一个可以处理嵌套列表的函数,然后把返回结果连接起来。

scala>List(List(1,2),List(3,4)).flatMap(x=>x.map(x=>x*2))
res5: List[Int] = List(2, 4, 6, 8)


登录后即可回复 登录 | 注册
    
关注编程学问公众号