scala学习记录,Set,Map

set:集合,表示没有重复元素的集合,特点:唯一

语法格式:val 变量名 = Set [类型](元素1,元素2...)

可变不可变

可变(mutable)可对元素进行添加,删除等操作;不可变(immutable)创建后元素不能修改

如果要定义可变的Set(mutable),需要额外导入包:import scala.collection.mutable

Set常见操作

对于可变Set,我们可用+=来添加元素,对于不可变Set,创建一个新的Set来添加元素。

对于可变Set,我们可用-=来添加元素,对于不可变Set,创建一个新的Set来删减元素。

对于Set,我们可用++=来合并元素

查询元素是否存在,使用contains

使用union方法得到两个集合的并集

使用intersect方法得到两个集合的交集

使用diff方法得到两个集合的差集

小习一下:

1.在Scala中,可变和不可变的区别?

        能否修改元素

2.那个符号用于向可变元素添加元素?

        +=

3.对于不可变Set,如果添加一个新元素,会发生什么?

        创建一个新的Set

4.使用contains方法在Set中查询元素,返回值是什么类型?

        返回一个布尔值即Boolean(true或者false)。

5.求两个Set的交集使用的方法是什么?

        使用intersect方法得到两个集合的交集

Map(映射):是一种可迭代的键值对(key/Value)结构,所有值都可通过键来获取,Map中的键都是唯一的,定义时需要为键值对定义类型。

可变不可变

可变(mutable)可对元素进行添加,删除等操作;不可变Map对象不能修改

如果要定义可变的Map(mutable),需要额外导入包:import scala.collection.mutable

Map常见操作

对于可变Map,我们可用+=,put来添加元素,对于不可变Set,创建一个新的Map来添加元素。

对于可变Map,我们可用-=来添加元素,对于不可变Set,创建一个新的Map来删减元素。

用get查询Map中的值

修改: 

遍历:

小习一下:

1.在 Scala 中,不可变Map和可变Map的主要区别是什么?

        能否修改元素。


2.以下哪个操作符可以用于向可变Map添加元素?

        +=


3.使用 get 方法查询Map中不存在的键时,返回值是什么类型?

        None

4.对于不可变 Map,如果要添加新元素,会怎样?
        创建一个新的 Map


5.遍历 Map 可以使用哪些方法?
        for循环和foreach 方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot的免税商品优选购物商城的设计与实现

一、项目背景 从古至今,通过书本获取知识信息的方式完全被互联网络信息化,但是免税商品优选购物商城,对于购物商城工作来说,仍然是一项非常重要的工作。尤其是免税商品优选购物商城,传统人工记录模式已不符合当前社会…

【深度学习】DreamClear:提升图片分辨率的模型

基于PixArt-XL-2模型,效果很好。 DreamClear:高容量真实世界图像修复与隐私安全数据集构建 在图像修复领域,处理真实世界中的低质量(Low-Quality, LQ)图像并恢复其高质量(High-Quality, HQ)版本一直是一个具有挑战性的任务。今天,我们将介绍一个最新的开源项目——Dr…

从零开始的c++之旅——多态

1. 多态的概念 通俗来说就是多种形态。 多态分为编译时多态(静态多态)和运行时多态(动态多态)。 编译时多态主要就是我们之前提过的函数重载和函数模板,同名提高传不同的参数就可以调 用不同的函数&#xff0c…

js实现blob类型转化为excel文件

需求 后端通过接口将excel文件通过blob类型数据进行返回,前端接收数据并将其转化为excel文件进行下载 实现 接口方法 responseType:值为blob,标记返回数据类型为blob Content-Type:请求头设置,值为application/vnd…

融云「北极星」专业版:指标异常及时告警,趋势变化预先知悉

说起程序员的痛苦时刻,深夜接到告警电话、短信绝对榜上有名,甚至可能留下“铃声 PTSD”。 这也从另一个侧面提醒我们,所有在前台给用户丝滑体验的互联网产品,背后都有庞杂的系统和大量的工程师在支撑。而这其中,监控平…

安全篇(1)判断安全固件

判断安全固件的方法 一、通过串口开机打印 改方法适用Android与Tina 1.开机打印为SBOOT为安全 [289]HELLO! SBOOT is starting! 2.开机打印boot0为非安全 [88]BOOT0 commit : 1cbb5ea8b3 二、通过读数据 1.getprop | grep verifiedbootstate 这条命令的输出表示设备的…

火山引擎VeDI数据服务平台:在电商场景中,如何解决API编排问题?

01 平台介绍 数据服务平台可以在保证服务高可靠性和高安全性的同时,为各业务线搭建数据服务统一出口,促进数据共享,为数据和应用之间建立了一座“沟通桥梁”。 同时,解决数据理解困难、异构、重复建设、审计运维困难等问题&#x…

在Ubuntu 上实现 JAR 包的自启动

在 Ubuntu 上实现 JAR 包的自启动,可以通过以下几种方法: 方法一:使用 systemd 创建一个服务文件: 在 /etc/systemd/system/ 目录下创建一个新的服务文件,例如 myapp.service: sudo nano /etc/systemd/sys…

Object 内部类 异常

Objbect类 java提供了Object,它是所有类的父类,每个类都直接或间接的继承了Object类,因此Object类通常被称为超类 当定义一个类时,如果没有使用extends关键字直接去指定父类继承,只要没有被继承的类,都是会默认的去继承Object类,超类中定义了一些方法 方法名称方法说明boole…

SQLite -- 一个遵守君子协定的数据库

用惯了Oracle、PostgreSQL等数据库,今天接触到SQLite,简单尝试了下使用,顿感震惊!!! 与传统的关系型数据库(如 MySQL、PostgreSQL 等)相比,它的约束是真的宽松。具体来说…

Linux 高级IO

学习任务: 高级 I/O:select、poll、epoll、mmap、munmap 要求: 学习高级 I/O 的用法,并实操 1、高级 I/O: 前置知识: 阻塞、I/O 多路复用 PS: 非阻塞 I/O ------ 非阻塞 I/O 阻塞其实就是进入了休眠状态&am…

JAVA WEB — HTML CSS 入门学习

本文为JAVAWEB 关于HTML 的基础学习 一 概述 HTML 超文本标记语言 超文本 超越文本的限制 比普通文本更强大 除了文字信息 还可以存储图片 音频 视频等标记语言 由标签构成的语言HTML标签都是预定义的 HTML直接在浏览器中运行 在浏览器解析 CSS 是一种用来表现HTML或XML等文…

ASRPRO 日历2

为避免与天问的ID冲突 ID前加10000 为使识别更顺畅 将 日期-月份 12月21日 合并 ;时间 10点25分 合并 通过串口获取日期 为使用常用词 计倒时 下周 明天,需通过串口获取当前日期 + 命令词 增加 我的 A的 B的 关系词 与任务 生日 买菜 增加 可自定义 任务 执行程序 双进…

Linux——Linux基础指令

Linux基本指令 文章目录 Linux基本指令1. 基础五指令(1) whoami(2) who(3) pwd(4) ls(5) clear 2. 文件常见命令(1) touch(2) mkdir(3) cp(4) mv(5) rm(6) cd 3. 常见IO命令(1) cat(2) tac(3) head(4) tail(5) more(6) less 4. 拓展命令(1) man手册(2) which(3) file(4) date(5…

雷池社区版 7.1.0 LTS 发布了

LTS(Long Term Support,长期支持版本)是软件开发中的一个概念,表示该版本将获得较长时间的支持和更新,通常包含稳定性、性能改进和安全修复,但不包含频繁的新特性更新。 作为最受欢迎的社区waf&#xff0c…

出海企业如何借助云计算平台实现多区域部署?

云计算de小白 如需进一步了解,请单击链接了解有关 Akamai 云计算的更多信息 在本文中我们将告诉大家如何在Linode云计算平台上借助VLAN快速实现多地域部署。 首先我们需要明确一些基本概念和思想: 部署多区域 VLAN 为了在多区域部署中在不同的 VLAN …

RDD转换算子:【map】

功能: 对RDD中每个元素调用一次参数中的函数,并将每次调用的返回值放入一个新的RDD中(一对一) 语法: def map(self , f: T -> U ) -> RDD[U]f:代表参数是一个函数 T:代表RDD中的每个元…

如何更好的crud

一、DDD是什么? DDD全名叫做Domins drives Design;领域驱动设计。再说的通俗一点就是:通过领域建模的方式来实现软件设计。 问题来了:什么是软件设计?为什么要进行软件设计? 软件开发最主要的目的就是&…

AI赋能酒店设计|莱佛士学生成功入围WATG设计大赛

近日,由Wimberly Allison Tong & Goo(WATG)主办的“用人工智能重新构想酒店行业的未来”设计比赛正式拉开帷幕。这场设计比赛,不仅是为了庆祝WATG即将步入80周年,更是为了激发年轻设计师们的创造力和探索实践精神&…

Netty原来就是这样啊(二)

前言: Netty其实最大的特点就是在于对于对NIO进行了进一步的封装,除此以外Netty的特点就是在于其的高性能 高可用性,下面就会一一进行说明。 高性能: 我在Netty原来就是这样啊(一)-CSDN博客 解释了其中的零拷贝的技术除此以外还有Reactor线程模型,这个Reactor线程模型的思想…