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 _)
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))



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值