第1节 Scala基础语法:11、映射;12、元组
5.2. 映射
在Scala中,把哈希表这种数据结构叫做映射。
1.1.1. 构建映射
(1)构建映射格式
1、val map=Map(键 -> 值,键 -> 值....)
2、利用元组构建 val map=Map((键,值),(键,值),(键,值)....)

1.1.2.
获取和修改映射中的值
(1)获取映射中的值:
值=map(键)

好用的getOrElse

注意:在Scala中,有两种Map,一个是immutable包下的Map,该Map中的内容不可变;另一个是mutable包下的Map,该Map中的内容可变
例子:

注意:通常我们在创建一个集合是会用val这个关键字修饰一个变量(相当于java中的final),那么就意味着该变量的引用不可变,该引用中的内容是不是可变,取决于这个引用指向的集合的类型
5.3. 元组
映射是K/V对偶的集合,对偶是元组的最简单形式,元组可以装着多个不同类型的值。
1.1.1. 创建元组
(1)元组是不同类型的值的聚集;对偶是最简单的元组。
(2)元组表示通过将不同的值用小括号括起来,即表示元组。
创建元组格式:
val tuple=(元素,元素...)

1.1.2. 获取元组中的值
(1) 获取元组中的值格式:
使用下划线加脚标 ,例如 t._1 t._2 t._3
注意:元组中的元素脚标是从1开始的

1.1.3. 将对偶的集合转换成映射
将对偶的集合转换成映射:
调用其toMap 方法

1.1.4. 拉链操作
1.使用zip命令可以将多个值绑定在一起

注意:如果两个数组的元素个数不一致,拉链操作后生成的数组的长度为较小的那个数组的元素个数
2.如果其中一个元素的个数比较少,可以使用zipAll用默认的元素填充

第1节 Scala基础语法:11、映射;12、元组的更多相关文章
- 第1节 Scala基础语法:5、6、7、8、基础-申明变量和常用类型,表达式,循环,定义方法和函数
4. Scala基础 4.1. 声明变量 package cn.itcast.scala object VariableDemo { def main(args: Array[Strin ...
- 第1节 Scala基础语法:9、10、数组
1. 定义数组时,没有new和有new是有区别的: scala> val arr3 = Array[Int](2) 此时,arr3中仅包含1个元素2arr3: Array[Int] = A ...
- 第1节 Scala基础语法:13、list集合的定义和操作;16、set集合;17、map集合
list.+:5 , list.::5: 在list集合头部添加单个元素5 : li1.:+(5):在list集合尾部添加单个元素5: li1++li2,li1:::li2:在li1集合尾部添加il2 ...
- 第1节 Scala基础语法:3、环境;4、插件
1. Scala编译器安装 1.1. 安装JDK 因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK. 1.2. 安装Scala 1.2.1. Windows ...
- 第1节 Scala基础语法:scala中的方法源码分析
val list=List(1,2,3,4) list.reduce((x:Int,y:Int)=>x+y)--->list.reduceLeft((x:Int,y:Int)=>x+ ...
- 第1节 Scala基础语法:1、2、概述,什么是scala
Scala编程 1. 课程目标 1.1. 目标1:熟练使用scala编写Spark程序 1.2. 目标2:动手编写一个简易版的Spark通信框架 1.3. 目标3:为阅读Spark内核源码 ...
- 第1节 Scala基础语法:14、15、list集合练习
package cn.itcast.collect /** *作业题 */object ListTest { def main(args: Array[String]): Unit = { //创建一 ...
- 1.scala基础语法总结
Scala基础语法总结:Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的.如果一行里写多个语句那么分号是需要的 val s = "菜鸟教程"; pr ...
- 【Scala学习之一】 Scala基础语法
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
随机推荐
- redis环境搭建学习笔记
学习环境为windows.java环境 一.学习教程: 1.菜鸟教程:http://www.runoob.com/redis/redis-tutorial.html 2.redis中文网:http:/ ...
- HashMap知识初探
public class TestHashMap { /** * HashMap是数组和链表组合构成的数据结构 * 数组里面每个地方都存了key-value这样的实例Java7叫Entry,Java8 ...
- laravel 事件系统
例子: 打开 VerificationController ,此控制器处理所有邮件认证相关逻辑: app/Http/Controllers/Auth/VerificationController.ph ...
- 使用php-vmstat遇到的麻烦
workerman-vmstat是一个基于workerman的扩展,用于监听服务器应用对内存.cpu消耗的友好的查看功能,具体介绍可以去git上看: https://github.com/wal ...
- "exit"未定义标签 问题
找了两个多小时,最后才发现是版本问题.因为是网上下的代码,可能用的版本比较高,而我自己的是2.4.10版本的opencv,所以正确的代码应该是如下: CV_Error(CV_StsBadArg,&qu ...
- MySQL常用系统表大全
MySQL5.7 默认的模式有:information_schema, 具有 61个表: m ysqL, 具有31个表: performance_schema,具有87个表; sys, 具有1个表, ...
- 【CSS属性#1】
" 目录 一.宽和高 二.字体属性 1. 文字字体 font-famlly 2. 字体大小 font-size 3. 字重(粗细) font-weight 4. 文本颜色 color 三.字 ...
- Ansible自动化搭建及工具集和常见模块、命令详情(重点)
一.ansible介绍 1.ansible简介 官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具. Ansible跟其他IT自动化技术的区别 ...
- VMware虚拟磁盘修复
最近VMware虚拟机老是断掉提示无法完成同步,后来提示虚拟磁盘需要修复,经过一番查询,找到了相关检查与修复口令,先记录如下. vmware-vdiskmanager -R “PATH” 说明: PA ...
- 最长公共子序列-Hdu1159
Common Subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...