您的位置:首页 > 编程语言

Scala常用函数式编程之map、foreach、flatten、flatmap、filter、zip、zipWithIndex

2017-08-20 21:00 387 查看
1、map
map方法可以将某个函数应用到集合中的每个元素并产出其结果的集合,比如

scala> val names = List("a", "b", "c")
names: List[String] = List(a, b, c)

scala> names.map(_.toUpperCase)
res0: List[String] = List(A, B, C)
2、foreach

foreach和map相似,只不过它没有返回值,foreach只要是为了对参数进行作用。
scala> names.foreach{name => println(name)}
a
b
c
3、flatten

flatten可以把嵌套的结构展开. 
scala> List(List(1,2), List(3,4)).flatten
res2: 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))
res3: 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,5,6).filter(isEven _)
res4: List[Int] = List(2, 4, 6)
6.zip

zip方法将两个集合结合在一起
scala> List("a","b", "c").zip(List(1,2,3))
res5: List[(String, Int)] = List((a,1), (b,2), (c,3))
7.zipWithIndex将元素和下标结合在一起
scala> List(2,3,4,5)zipWithIndex
warning: there was one feature warning; re-run with -feature for details
res6: List[(Int, Int)] = List((2,0), (3,1), (4,2), (5,3))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐