Scala深入浅出实战经典:35,List的map、flatMap、foreach、filter操作代码实战
2015-09-19 13:41
519 查看
package com.dt.scalaInAction.demo_035 /** * List的map、flatMap、foreach、filter操作代码实战 * map:作用于集合中每个元素 在组合成一个新的集合 * flatMap 将所有元素集合中 的元素合并为一个集合 e.g {List(1, 2),List(2, 3) ...} => List(1, 2, 2, 3) * foreach 迭代每个元素 返回一个无返回值的函数操作 比如常用的遍历 foreach(println) * filter 过滤出符合提交的元素 在组合成一个新的集合 参数是一个 返回值为Boolean类型的函数 */ object List_HighOrder_Function_Ops { def main(args: Array[String]): Unit = { println(List(1, 2, 3, 4, 6).map(_ + 1)) //等价于 List(1, 2, 3, 4, 6).map(item => item + 1) //List(2, 3, 4, 5, 7) val data = List("Scala", "Hadoop", "Spark") println(data map (_.length)) //List(5, 6, 5) println(data map (_.toList.reverse.mkString)) //List(alacS, poodaH, krapS) println(data.map(_.toList)) //List(List(S, c, a, l, a), List(H, a, d, o, o, p), List(S, p, a, r, k)) println(data.flatMap(_.toList)) //List(S, c, a, l, a, H, a, d, o, o, p, S, p, a, r, k) println(List.range(1, 10) flatMap (i => List.range(1, i) map (j => (i, j) ) ) ) //range(1, 10) ==> List(1, 2, 3, 4, 5, 6, 7, 8, 9) <==> [1,...10) //List((2,1), (3,1), (3,2), (4,1), (4,2), (4,3), (5,1), (5,2), (5,3), (5,4), (6,1), (6,2), (6,3), (6,4), (6,5), (7,1), (7,2), (7,3), (7,4), (7,5), (7,6), (8,1), (8,2), (8,3), (8,4), (8,5), (8,6), (8,7), (9,1), (9,2), (9,3), (9,4), (9,5), (9,6), (9,7), (9,8)) var sum = 0 List(1, 2, 3, 4, 5) foreach (sum += _) println("sum=" + sum) //sum=15 println(List(1, 2, 3, 4,6, 7, 8, 9, 10) filter (_ % 2 == 0)) //List(2, 4, 6, 8, 10) println(data filter (_.length == 5)) //List(Scala, Spark) } }
以上内容是从王家林老师DT大数据课程第35讲的学习笔记和个人整理。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
第35讲视频网站地址:http://pan.baidu.com/s/1i3CLJ29
相关文章推荐
- 跟Python打包相关的一些文章
- django 1.8 官方文档翻译:9-2 "本地特色"附加功能
- Junit4详解二:Junit4 Runner以及test case执行顺序和源代码理解
- Scala深入浅出实战经典:34,对List进行高效的排序和倒排序代码实战
- java__properties和转换流(字节转字符流)
- Scala深入浅出实战经典:33,List的一阶函数操作代码实战详解
- Sizzle.filter [ 源代码分析 ]
- C语言冒泡排序法
- win8下python安装和环境配置
- Java 基础学习-链接
- Netbeans的使用
- java 类的基本知识
- 布尔表达式问题
- #include <stdio.h> //c库要.h。printf("Input n:\n");scanf("%d",&n);
- java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??
- 对GitHub的认识
- Struts拦截百度编辑器解决方法
- ASP.NET三层架构的分析
- django 1.8 官方文档翻译:9-1-4 格式本地化
- 假设动态运行java文字,当在脚本式配置,这是非常方便的