博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高级函数- 集合的方法操作1
阅读量:5901 次
发布时间:2019-06-19

本文共 1900 字,大约阅读时间需要 6 分钟。

  hot3.png

1. foreach (类似于map, 但是没有返回值):
scala> val l = List(1, 2, 3, 4)l: List[Int] = List(1, 2, 3, 4) // map有返回值 scala> l.map(3 * _)res18: List[Int] = List(3, 6, 9, 12)scala> l.map(println(_)) 1234 res29: List[Unit] = List((), (), (), ())scala> l.map(x => println(3 * x)) 36912 res30: List[Unit] = List((), (), (), ()) // foreach 无返回值 scala> l.foreach(println(_)) 1234 scala> l.foreach(x => println(3 * x)) 36912
2. filter (过滤):
scala> val l = List(1, 2, 3, 4)l: List[Int] = List(1, 2, 3, 4)scala> l.filter(_ % 2 ==0)res31: List[Int] = List(2, 4)scala> l.filter(x => x % 2 ==0)res32: List[Int] = List(2, 4)
3. zip (聚合 =>  生成一个装有元组的列表 ) 方法的使用:
scala> val a = List(1, 2, 3, 4)a: List[Int] = List(1, 2, 3, 4)scala> val b = List(11, 12, 13, 14)b: List[Int] = List(11, 12, 13, 14)scala> a.zip(b)res33: List[(Int, Int)] = List((1,11), (2,12), (3,13), (4,14))scala> a zip bres34: List[(Int, Int)] = List((1,11), (2,12), (3,13), (4,14))
4. partition (列表分割):
scala> val l = List(1, 2, 3, 4)l: List[Int] = List(1, 2, 3, 4)scala> l.partition(_ % 2 == 0)res36: (List[Int], List[Int]) = (List(2, 4),List(1, 3))
5. flatten (扁平化:多个List 压缩到一个List中 ):
scala> List(List(1, 2, 3), List(4, 5))res39: List[List[Int]] = List(List(1, 2, 3), List(4, 5))scala> List(List(1, 2, 3), List(4, 5)).flattenres40: List[Int] = List(1, 2, 3, 4, 5)

 

6. flatMap (map + flatten):

map是针对 大List中小List的操作,所以X得到就是小List, 然后对小List中元素进行map操作

然后对最终的结果:flatten汇总操作

- Spark 中 map函数会对每一条输入进行指定的操作,然后为每一条输入返回一个对象;

- 而flatMap函数则是两个操作的集合——正是“先映射后扁平化”:

   操作1:同map函数一样:对每一条输入进行指定的操作,然后为每一条输入返回一个对象

   操作2:最后将所有对象合并为一个对象

红色参考地址: http://www.bkjia.com/yjs/927704.html?qqdrsign=CD65

scala> val a = List(List(1, 2, 3), List(4, 5))a: List[List[Int]] = List(List(1, 2, 3), List(4, 5))scala> a.flatMap( _.map(3 * _))res51: List[Int] = List(3, 6, 9, 12, 15)scala> a.flatMap(x => x.map(3 * _))res53: List[Int] = List(3, 6, 9, 12, 15)

转载于:https://my.oschina.net/repine/blog/542937

你可能感兴趣的文章
我的友情链接
查看>>
RocketMQ事务消息实战
查看>>
mysql-mmm-2.2.1安装手册
查看>>
搭建yum源服务器
查看>>
delphi使用ado导出excel
查看>>
linux 命令详解 二十三
查看>>
IT职场人生系列之二:大学生活
查看>>
4.一对多关联映射
查看>>
手把手教你做出好看的文本输入框
查看>>
zabbix 3.2.7 (源码包)安装部署
查看>>
看懂此文,不再困惑于 JS 中的事件设计
查看>>
vsCode 快捷键、插件
查看>>
vue-validator(vue验证器)
查看>>
jQuery Ajax MVC 下拉框联动
查看>>
每天一个linux命令(21):chgrp,chown,chmod
查看>>
html
查看>>
常见SQL Server导入导出数据的几个工具
查看>>
在程序出现问题,当找不到错误时,第一时间用try ,catch包括起来
查看>>
c#创建文件夹
查看>>
Hibernate事务代码规范写法
查看>>