scala中的函数组合器map,foreach,flatmap,flatten,filter,zip等用法
2015-09-29 12:37
579 查看
1、map
map方法可以将某个函数应用到集合中的每个元素并产出其结果的集合,比如
可以用
得到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))
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))
相关文章推荐
- tengine + tomcat 安装整合实现高可用负载均衡
- 实验报告--数据结构实验一
- COGS 题目1487. 麻球繁衍(数学概率)
- linux性能问题(CPU,内存,磁盘I/O,网络)
- 关于纳什均衡与博弈论
- 碳化硅资料整理
- enable CheckJni for NDK development
- 前端安全
- Linux下常用的shell命令记录
- Linux SSH远程文件/目录传输命令scp
- 【ShancoLove】带你看数据结构——第一课:概论
- iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建
- <c:foreach
- 系统没有“internet信息服务(IIS)管理器”
- Linux下的进程管理
- IOS获取系统图片
- Python subprocess模块解析
- iOS开发UI篇—在UItableview中实现加载更多功能
- 读取配置文件信息
- Oracle 11g R2 for Win7旗舰版(64位)的安装步骤