您的位置:首页 > 其它

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

2015-09-29 12:37 579 查看
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 _)

res6: 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))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: