掌握Scala数据结构(2)MAP、TUPLE、SET

一、映射 (Map)

(一)不可变映射

1、创建不可变映射

  • 创建不可变映射mp,用键->值的形式
    掌握Scala数据结构(2)MAP、TUPLE、SET_第1张图片
  • 创建不可变映射mp,用(键, 值)的形式
    掌握Scala数据结构(2)MAP、TUPLE、SET_第2张图片
  • 注意:Map是特质(Scala里的trait,相当于Java里的interface),不能实例化
    掌握Scala数据结构(2)MAP、TUPLE、SET_第3张图片

2、遍历不可变映射

  • 利用for循环来实现遍历
    掌握Scala数据结构(2)MAP、TUPLE、SET_第4张图片
  • 调用mp.keys的foreach算子实现遍历
    掌握Scala数据结构(2)MAP、TUPLE、SET_第5张图片
  • 能否按键修改映射的值?
    掌握Scala数据结构(2)MAP、TUPLE、SET_第6张图片

(二)可变映射

1、创建可变映射

  • 创建可变映射mp
    掌握Scala数据结构(2)MAP、TUPLE、SET_第7张图片

2、修改可变映射

  • 将键02的值改为man(键02存在,执行修改操作)
    掌握Scala数据结构(2)MAP、TUPLE、SET_第8张图片
  • 将键05的值改为belle(键05存在,执行添加操作)
    掌握Scala数据结构(2)MAP、TUPLE、SET_第9张图片

3、查询可变映射

  • 查询键02的值,如果没有查到,则返回键02不存在
    在这里插入图片描述
  • 查询键08的值,如果没有查到,则返回键08不存在
    在这里插入图片描述

4、添加元素

  • 查看可变映射当前值
    在这里插入图片描述
  • 用两种方式添加元素
    掌握Scala数据结构(2)MAP、TUPLE、SET_第10张图片
  • 因为数组和列表都可以用append方法来添加新元素,我们试一试映射可不可以
    在这里插入图片描述

5、删除元素

  • 删除存在的键 - 07 对应的元素
    在这里插入图片描述
  • 删除不存在的键 - 11 对应的元素,不报错,映射也没有变化
    在这里插入图片描述
  • 试一试能否用remove方法来删除映射的元素
    掌握Scala数据结构(2)MAP、TUPLE、SET_第11张图片

二、元组 (Tuple)

(一)定义元组

1、直接赋值定义元组

  • 定义一个元组student(自动推断)
    在这里插入图片描述

2、创建指定长度的元组

  • 定义指定长度的元组,其中Tuple3是一个元组类,代表元组长度为3
    掌握Scala数据结构(2)MAP、TUPLE、SET_第12张图片

(二)访问元组

  • 使用方法_1、_2、_3访问元组的元素,与数组和字符串的位置不同,元组的元素下标从1开始。
  • 访问元组的3个元素
    掌握Scala数据结构(2)MAP、TUPLE、SET_第13张图片
  • 元组不能像数组或列表那样通过圆括号加下标的方式来访问元素
    掌握Scala数据结构(2)MAP、TUPLE、SET_第14张图片
  • 访问元组的第6个元素(不存在的元素),报错
    掌握Scala数据结构(2)MAP、TUPLE、SET_第15张图片

(三)迭代元组

  • 直接用for循环遍历元素是不行的
    掌握Scala数据结构(2)MAP、TUPLE、SET_第16张图片

  • 使用元组的productIterator()方法产生全部元素构成的迭代器,然后遍历迭代器
    掌握Scala数据结构(2)MAP、TUPLE、SET_第17张图片

  • 使用for循环遍历元组生成迭代器
    掌握Scala数据结构(2)MAP、TUPLE、SET_第18张图片

(四)元组转为字符串

  • 使用Tuple.toString()方法可将元组全部元素组合成一个字符串
    掌握Scala数据结构(2)MAP、TUPLE、SET_第19张图片

三、集合 (Set)

(一)定义集合

  • 定义一个空的不可变集合set1(Nothing - 一无所有,Scala所有类的子类)
    在这里插入图片描述
  • 定义一个非空的不可变集合set2(Any - 包罗万象,Scala所有类的父类)
    在这里插入图片描述

(二)增减元素

  • 与列表一样,对于不可变集合进行元素的增加和删除实际上会产生一个新集合,原来的集合并没有改变
  • 创建一个不可变集合set
    在这里插入图片描述
  • 添加一个集合不存在的元素 - 100
    掌握Scala数据结构(2)MAP、TUPLE、SET_第20张图片
  • 添加一个集合存在的元素1,集合里始终只有一个1(集合具有互异性)
    掌握Scala数据结构(2)MAP、TUPLE、SET_第21张图片
  • 当然,2和3两个元素也是加不进去的
    掌握Scala数据结构(2)MAP、TUPLE、SET_第22张图片
  • 减去一个存在的元素2
    掌握Scala数据结构(2)MAP、TUPLE、SET_第23张图片
  • 减去一个不存在的元素666,没有任何动静
    在这里插入图片描述

(三)集合方法

  • 创建一个集合cities
    在这里插入图片描述

1、获取首元素

在这里插入图片描述

2、获取去首子集合

在这里插入图片描述

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

掌握Scala数据结构(2)MAP、TUPLE、SET_第24张图片

3、两个集合求并集

  • 利用++运算符或union方法求两个集合的并集
  • 两个集合都有6和2,但是并集里只出现1次
    掌握Scala数据结构(2)MAP、TUPLE、SET_第25张图片

4、两个集合求交集

  • 利用.&或.intersect()方法求两个集合的交集
    掌握Scala数据结构(2)MAP、TUPLE、SET_第26张图片

5、求集合的最值

  • 利用max和min方法求集合最值
    掌握Scala数据结构(2)MAP、TUPLE、SET_第27张图片

6、求集合的总和和平均值

  • 利用sum方法求和
    掌握Scala数据结构(2)MAP、TUPLE、SET_第28张图片

7、集合的遍历

  • 利用for循环遍历集合
    掌握Scala数据结构(2)MAP、TUPLE、SET_第29张图片

  • 利用遍历算子遍历集合
    在这里插入图片描述

你可能感兴趣的:(scala,数据结构,开发语言)