Scala Map操作
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操作的更多相关文章
- scala map操作 简单总结
在函数式编程中有一个核心的概念之一是转换,所以大部份支持函数式编程语言,都支持一种叫map()的动作,这个动作是可以帮你把某个容器的内容,套上一些动作之后,变成另一个新的容器. 现在我们考虑如何用Op ...
- scala - Map基础
Map 构造Map 不可变: val map = Map("sa" -> 1, "s" -> 2)map("sa") = 3 / ...
- Scala实战高手****第6课 :零基础实战Scala集合操作及Spark源码解析
本课内容1.Spark中Scala集合操作鉴赏2.Scala集合操作实战 --------------------------------------------------------------- ...
- python dataframe 针对多列执行map操作
Suppose I have a df which has columns of 'ID', 'col_1', 'col_2'. And I define a function : f = lambd ...
- RxJava Map操作详解
2016-06-06 RxJava是最近两年火起来的一个框架,核心是异步,但是对于我来说印象最深的是响应式编程的思想.最近刚好想把自己的项目改成用RxJava实现,所以就研究了下.抛物线和大头鬼两位大 ...
- 解决升级Spark2.0之后,DataFrame map操作报错
当我们在使用spark1.6的时候,当我们创建SQLContext读取一个文件之后,返回DataFrame类型的变量可以直接.map操作,不会报错.但是升级之后会包一个错误,如下: 报错:No imp ...
- python中的zip、lambda、map操作
python 中有几个比较酷炫的操作,比如:zip.lambda.map 一.zip操作 zip字面意思:拉链.这么来记,把几个东西扔到一个包里,拉上拉链,就算打包好了.通俗点讲,就是把第1个参数.与 ...
- C++ map操作——插入、查找、遍历
c++ map 操作学习 #include <iostream> #include <map> #include <string> #include <vec ...
- scala map的常用操作
package cn.scala_base /** * map常用操作 */ object Map { def main(args: Array[String]): Unit = { //1.不可变m ...
- scala的map操作
新建一个不定参数的 map: var cs = mutable.Map.empty[String, String] 对其进行赋值: cs += (key -> value) 读取里面所有的 ke ...
随机推荐
- windows 上 cmake 添加 vcpkg 选项
使用 cmake 编写相关的工程时,工程有时会使用 vcpkg 添加的第三方库,比如 zip 库 查看一些案例后,我发现有些回答不太准确,遂记录下 现在,我们需要在工程中使用 zip_open 函数执 ...
- xHook 源码解析
xHook 是爱奇艺开源的一个PLT Hook 框架 项目地址: https://github.com/iqiyi/xHook 该项目实现了 PTL/GOT Hook PTL hook 的本质是修改内 ...
- Java的SPI机制实践
Java SPI机制概述 先给出结论:"Java的SPI是一种服务发现机制,用于约定接口和动态发现实现类,体现了分层解耦的思想". Java的SPI机制常用于框架扩展或组件替换,最 ...
- 2020-11-18 原生js实现自动打字效果
原理 使用定时器,对要输出的文字进行遍历,每遍历一次,都增加一个字以及在段尾加上"|"暗示别人正在打字. js代码 const fangWrite = (theString, qu ...
- Lua学习笔记之迭代器、table、模块和包、元表和协程
迭代器 迭代器是一种对象,它能够来遍历标准库模板容器中的部分或全部元素,每个迭代器对象代表容器中确定的地址,在Lua中迭代器是一种支持指针类型的结构,他可以遍历集合的每一个元素. 泛型for迭代器 泛 ...
- [Azure Developer]把Azure Function中ILogger对象静态化为静态方法提供日志记录
问题描述 在Azure Function代码中,有默认的ILogger对象来记录函数的日志,如果函数引用了一些静态对象,是否有办法使用这个默认的ILogger对象来记录日志呢? using Syste ...
- 无依赖单机尝鲜 Nebula Exchange 的 SST 导入
本文尝试分享下以最小方式(单机.容器化 Spark.Hadoop.Nebula Graph),快速趟一下 Nebula Exchange 中 SST 写入方式的步骤.本文适用于 v2.5 以上版本的 ...
- ChCore—实验 3:进程与线程、异常处理 部分记录
思考题 1: 内核从完成必要的初始化到用户态程序的过程是怎么样的?尝试描述一下调用关系. 内核启动到用户程序启动的流程: main ├── uart_init ├── mm_init ├── arch ...
- [学习笔记] Linux 环境下搭建基于Ngnix的反向代理服务
之前为了方便同事测试微信小程序,搭建了基于CentOS的预发布环境,.Net5 程序也已经部署好在上面,在公网上可以通过http协议的临时域名(jevonsflash.xxx.net)访问到后台Ap ...
- Zabbix与乐维监控对比分析(四)——告警管理篇
在前面发布的Zabbix与乐维监控对比分析文章中,我们评析了二者在架构与性能.Agent管理.自动发现.权限管理.对象管理等方面的差异.接下来让我们一起看看二者在告警管理方面的差异. 告警管理是所有I ...