1 package chapter07
2
3 object Test14_HighLevelFunction_Map {
4 def main(args: Array[String]): Unit = {
5 val list = List(1,2,3,4,5,6,7,8,9)
6
7 // 1. 过滤
8 // 选取偶数
9 val evenList = list.filter( (elem: Int) => {elem % 2 == 0} )
10 println(evenList)
11
12 // 选取奇数
13 println(list.filter( _ % 2 == 1 ))
14
15 println("=======================")
16
17 // 2. 映射map
18 // 把集合中每个数乘2
19 println(list.map(_ * 2))
20 println(list.map( x => x * x))
21
22 println("=======================")
23
24 // 3. 扁平化
25 val nestedList: List[List[Int]] = List(List(1,2,3),List(4,5),List(6,7,8,9))
26
27 val flatList = nestedList(0) ::: nestedList(1) ::: nestedList(2)
28 println(flatList)
29
30 val flatList2 = nestedList.flatten
31 println(flatList2)
32
33 println("=======================")
34
35 // 4. 扁平映射
36 // 将一组字符串进行分词,并保存成单词的列表
37 val strings: List[String] = List("hello world", "hello scala", "hello java", "we study")
38 val splitList: List[Array[String]] = strings.map( _.split(" ") ) // 分词
39 val flattenList = splitList.flatten // 打散扁平化
40
41 println(flattenList)
42
43 val flatmapList = strings.flatMap(_.split(" "))
44 println(flatmapList)
45
46 println("========================")
47
48 // 5. 分组groupBy
49 // 分成奇偶两组
50 val groupMap: Map[Int, List[Int]] = list.groupBy( _ % 2)
51 val groupMap2: Map[String, List[Int]] = list.groupBy( data => if (data % 2 == 0) "偶数" else "奇数")
52
53 println(groupMap)
54 println(groupMap2)
55
56 // 给定一组词汇,按照单词的首字母进行分组
57 val wordList = List("china", "america", "alice", "canada", "cary", "bob", "japan")
58 println( wordList.groupBy( _.charAt(0) ) )
59 }
60 }

Scala Map操作的更多相关文章

  1. scala map操作 简单总结

    在函数式编程中有一个核心的概念之一是转换,所以大部份支持函数式编程语言,都支持一种叫map()的动作,这个动作是可以帮你把某个容器的内容,套上一些动作之后,变成另一个新的容器. 现在我们考虑如何用Op ...

  2. scala - Map基础

    Map 构造Map 不可变: val map = Map("sa" -> 1, "s" -> 2)map("sa") = 3 / ...

  3. Scala实战高手****第6课 :零基础实战Scala集合操作及Spark源码解析

    本课内容1.Spark中Scala集合操作鉴赏2.Scala集合操作实战 --------------------------------------------------------------- ...

  4. python dataframe 针对多列执行map操作

    Suppose I have a df which has columns of 'ID', 'col_1', 'col_2'. And I define a function : f = lambd ...

  5. RxJava Map操作详解

    2016-06-06 RxJava是最近两年火起来的一个框架,核心是异步,但是对于我来说印象最深的是响应式编程的思想.最近刚好想把自己的项目改成用RxJava实现,所以就研究了下.抛物线和大头鬼两位大 ...

  6. 解决升级Spark2.0之后,DataFrame map操作报错

    当我们在使用spark1.6的时候,当我们创建SQLContext读取一个文件之后,返回DataFrame类型的变量可以直接.map操作,不会报错.但是升级之后会包一个错误,如下: 报错:No imp ...

  7. python中的zip、lambda、map操作

    python 中有几个比较酷炫的操作,比如:zip.lambda.map 一.zip操作 zip字面意思:拉链.这么来记,把几个东西扔到一个包里,拉上拉链,就算打包好了.通俗点讲,就是把第1个参数.与 ...

  8. C++ map操作——插入、查找、遍历

    c++ map 操作学习 #include <iostream> #include <map> #include <string> #include <vec ...

  9. scala map的常用操作

    package cn.scala_base /** * map常用操作 */ object Map { def main(args: Array[String]): Unit = { //1.不可变m ...

  10. scala的map操作

    新建一个不定参数的 map: var cs = mutable.Map.empty[String, String] 对其进行赋值: cs += (key -> value) 读取里面所有的 ke ...

随机推荐

  1. ChainMap合并字典

    在python中,我们有两个字典需要合并的时候,可以使用字典的update方法 a = {'a': 1, 'b': 2} b = {'x': 3, 'y': 4} a.update(b) print( ...

  2. vue upload 图片转base64、转二进制数组,保存编码数据到文件

    功能需求 1.图片转base64 2.base 64 转二进制数组 3.保存二进制数据到文件下载到本地 解决方法 问题1: 参考资料 vue element upload图片 转换成base64 具体 ...

  3. 【算法day3】小和、荷兰国旗、快排

    小和问题 现有数组[1,3,4,2,5] 1左边是0(小于1),所以1的小和为0 3左边是1(小于3),所以3的小和为1 4左边是1.3(均小于4),所以4的小和为1+3=4 2左边是1.3.4(只有 ...

  4. Java Reactive Programming

    Java Reactive Programming 响应式编程 在 Spring Boot 中,支持了响应式编程,带来了性能和内存使用方面的优化. 详见: Spring: Blocking vs no ...

  5. 【Azure 事件中心】Event Hub服务中的度量值指标介绍

    问题描述 Event Hub服务中的度量值指标解说 1)request和message的区别 2)capture backlog 和 capture message 怎么理解 3)quota exce ...

  6. 【Azure Redis 缓存】使用Azure Redis服务时候,如突然遇见异常,遇见命令Timeout performing SET xxxxxx等情况,如何第一时间查看是否有Failover存在呢?

    问题描述 使用Azure Redis服务时,如突然遇见异常,命令Timeout performing SET xxxxxx等情况,如何第一时间查看是否有Failover存在呢?看是否有进行平台的维护呢 ...

  7. 【Azure 事件中心】China Azure上是否有Kafka服务简答

    问题描述 China Azure 上是否有Kakfa服务可以使用呢? 问题回答 China Azure并没有专门的Kafka服务,但是可以使用Azure Event Hub. 创建标准版及以上的Eve ...

  8. goland快键键防忘

    环境: debian下的goland 2018实测: 鼠标button2 == 鼠标中键 光标移动: 跳转光标到刚才的位置: ctrl+win+alt+左/右 按词左右移动光标: ctrl + 左/右 ...

  9. 并发编程 --- CAS原子操作

    介绍 CAS(Compare And Swap) 是一种无锁算法的实现手段,中文名称为比较并交换.它由 CPU 的原子指令实现,可以在多线程环境下实现无锁的数据结构. 原理 CAS 的原理是:它会先比 ...

  10. better-scroll 1.13

    简单入门示例:快速使用: <template> <div class="wrapper"> <div class="content" ...