一、映射 (Map)
(一)不可变映射
1、创建不可变映射
- 创建不可变映射mp,用键->值的形式

- 创建不可变映射mp,用(键, 值)的形式

- 注意:Map是特质(Scala里的trait,相当于Java里的interface),不能实例化

2、遍历不可变映射
- 利用for循环来实现遍历

- 调用mp.keys的foreach算子实现遍历

- 能否按键修改映射的值?

(二)可变映射
1、创建可变映射
- 创建可变映射mp

2、修改可变映射
- 将键02的值改为man(键02存在,执行修改操作)

- 将键05的值改为belle(键05存在,执行添加操作)

3、查询可变映射
- 查询键02的值,如果没有查到,则返回键02不存在

- 查询键08的值,如果没有查到,则返回键08不存在

4、添加元素
- 查看可变映射当前值

- 用两种方式添加元素

- 因为数组和列表都可以用append方法来添加新元素,我们试一试映射可不可以

5、删除元素
- 删除存在的键 - 07 对应的元素

- 删除不存在的键 - 11 对应的元素,不报错,映射也没有变化

- 试一试能否用remove方法来删除映射的元素

二、元组 (Tuple)
(一)定义元组
1、直接赋值定义元组
- 定义一个元组student(自动推断)

2、创建指定长度的元组
- 定义指定长度的元组,其中Tuple3是一个元组类,代表元组长度为3

(二)访问元组
- 使用方法_1、_2、_3访问元组的元素,与数组和字符串的位置不同,元组的元素下标从1开始。
- 访问元组的3个元素

- 元组不能像数组或列表那样通过圆括号加下标的方式来访问元素

- 访问元组的第6个元素(不存在的元素),报错

(三)迭代元组
-
直接用for循环遍历元素是不行的

-
使用元组的productIterator()方法产生全部元素构成的迭代器,然后遍历迭代器

-
使用for循环遍历元组生成迭代器

(四)元组转为字符串
- 使用Tuple.toString()方法可将元组全部元素组合成一个字符串

三、集合 (Set)
(一)定义集合
- 定义一个空的不可变集合set1(Nothing - 一无所有,Scala所有类的子类)

- 定义一个非空的不可变集合set2(Any - 包罗万象,Scala所有类的父类)

(二)增减元素
- 与列表一样,对于不可变集合进行元素的增加和删除实际上会产生一个新集合,原来的集合并没有改变
- 创建一个不可变集合set

- 添加一个集合不存在的元素 - 100

- 添加一个集合存在的元素1,集合里始终只有一个1(集合具有互异性)

- 当然,2和3两个元素也是加不进去的

- 减去一个存在的元素2

- 减去一个不存在的元素666,没有任何动静

(三)集合方法
- 创建一个集合cities

1、获取首元素

2、获取去首子集合

课堂练习:删除排前的三个城市

3、两个集合求并集
- 利用++运算符或union方法求两个集合的并集
- 两个集合都有6和2,但是并集里只出现1次

4、两个集合求交集
- 利用.&或.intersect()方法求两个集合的交集

5、求集合的最值
- 利用max和min方法求集合最值

6、求集合的总和和平均值
- 利用sum方法求和

7、集合的遍历
-
利用for循环遍历集合

-
利用遍历算子遍历集合




















