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)