当前位置: 首页 > news >正文

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

一、映射 (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循环遍历集合
    在这里插入图片描述

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

http://www.lryc.cn/news/93315.html

相关文章:

  • flutter:文件系统目录、文件读写
  • 计算机提示“找不到vcruntime140.dll,无法继续执行代码可”以这样子修复
  • 深度学习pytorch实战五:基于ResNet34迁移学习的方法图像分类篇自建花数据集图像分类(5类)超详细代码
  • Rust in Action笔记 第五章 深入理解数据
  • Cocos creator实现飞机大战空中大战《战击长空》小游戏资源及代码
  • 2.4 逻辑代数的基本定理
  • 适用于 Linux 的 Windows 子系统wsl文档
  • C++特殊类的设计与类型转换
  • 如何通过关键词搜索API接口
  • 智驾域控新战争打响,谁在抢跑?
  • Android 13无源码应用去掉无资源ID的按钮
  • 【SCI征稿】中科院2区(TOP),正刊,SCIEEI双检,进化计算、模糊集和人工神经网络在数据不平衡中应用
  • Android Audio开发——AAudio基础(十五)
  • SDK接口远程调试【内网穿透】
  • Mybatis学习笔记二
  • 大屏数据可视化开源项目
  • 面试经典150题:数组/字符串合集
  • Java源文件的执行过程
  • 10个ai算法常用库java版
  • 怎么看服务器带宽大小 103.219.179.X
  • 图形编辑器开发:最基础但却复杂的选择工具
  • apk签名-signapk.jar
  • 【100个高大尚求职简历】简历模板+修改教程+行业分类简历模板 (涵盖各种行业) (简历模板+编辑指导+修改教程)
  • Nginx平滑升级版本或添加模块
  • 高阶复杂网络重建:从时间序列中重建高阶网络
  • Day05 03-MySQL主从-主主原理与搭建详解
  • STL之vector
  • 2020年CSP-J认证 CCF非专业级别软件能力认证第一轮真题-单项选择题解析
  • vscode Delete `␍⏎·····`
  • 读书笔记-《ON JAVA 中文版》-摘要16[第十六章 代码校验]