scala中的函数组合器map,foreach,flatmap,flatten,filter,zip等用法

1、map
map方法可以将某个函数应用到集合中的每个元素并产出其结果的集合,比如

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)

5.filter

滤除掉使函数返回false的元素

scala> def isEven(i: Int): Boolean = i % 2 == 0
isEven: (i: Int)Boolean
scala> List(1,2,3,4).filter(isEven _)
res1: List[Int] = List(2, 4)

6.zip

zip方法将两个集合结合在一起

scala>  List('a,'b,'c).zip(List(1,2,3))
res32: List[(Symbol, Int)] = List(('a,1), ('b,2), ('c,3))

zipWithIndex将元素和下标结合在一起

scala> List(2,3,4,5).zipWithIndex
res33: List[(Int, Int)] = List((2,0), (3,1), (4,2), (5,3))

你可能感兴趣的:(scala中的函数组合器map,foreach,flatmap,flatten,filter,zip等用法)