Scala 中的Set

news/2024/11/7 19:15:09/

Set :集合。表示没有重复元素的集合,  特点: 唯一,无序。

1. Set 有可变 (mutable) 和不可变 (immutable) 两种类型。不可变 Set  创建后元素不能修改; 可变 Set  可对元素进行添加、删除等操作,这两种类型能满足不同场景需求。

//Set
import scala.collection.mutable
// 特点:元素要唯一
object Test11 {def main(args: Array[String]): Unit = {//1. 定义Set
//    val set1=Set[元素类型](元素1,元素2,.....)// 元素的类型可以省略
//    val set1=Set[String]("小花","小明","小明")
//    val set1=Set("小花","小明","小明")
//    println(set1)//不可变Set,默认使用的Set就是不可变的!
//    val course=Set("语文","数学")
//    val course1=course + "英语"
//    println(course,course1)//可变Set,需要额外去引入包val course=mutable.Set("语文","数学")println(course)}
}

2. 对于可变Set,我们可以使用 += 操作符来添加元素

//2.添加course+="英语"println(course)

3. 对于可变Set,我们可以使用 -= 操作符来删除元素

    //3.删除course-="语文"

4. 添加一个Set

    //4.添加一个Setcourse += mutable.Set("体育","音乐")println(course)

5. 查询元素是否存在

    //5.查询 元素是否存在。containsval rs=course.contains("体育1")//rs 是 true,false。是Boolean格式。println(s"体育是否存在:${rs}")
6. 集合操作
    val xiaohua =mutable.Set("语文","数学","英语")val xiaoming =mutable.Set("语文","体育","音乐")
//    问题1: 他们一共选了哪些课?
//    并集val rs2=xiaohua.union(xiaoming)println(s"哪些课是他们都选了的? ${rs2}")
//    问题2:哪些课是小花选了,小明没有选?
//    差集 diffval rs3=xiaohua.diff(xiaoming)println(s"哪些课是他们都选了的? ${rs3}")
//    问题3:哪些课是他们都选了的?
//    交集val rs1=xiaohua.intersect(xiaoming)println(s"哪些课是他们都选了的? ${rs1}")


http://www.ppmy.cn/news/1545146.html

相关文章

spring-data-jpa 一对多,多对一,多对多

spring-data-jpa 一对多,多对一,多对多 首先介绍几个主要用到的注解 ManyToOne 多对一ManyToMany 多对多OneToMany 一对多JoinColumn 两表之间的关联JsonIgnoreProperties 忽略属性(避免Jason套娃) 比如我有两张表:…

Apache POI(java操作Miscrosoft Office)

Apache POI 1.1 介绍 Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。 一般情况下,POI 都是用于操作 Excel 文件。 Apache POI 的应用场景&a…

5分钟科普:AI网关是什么?应用场景是什么?有没有开源的选择?

AI网关的功能及其定义 AI网关位于企业应用与内外部大模型调用的交汇点,能够灵活地将请求转发给内部自建模型或外部大模型服务提供商,甚至海外的服务商。它管理着企业所有的AI出口流量,为企业内的不同团队提供了多方面的优势。 对于开发团队…

【第六章·循环控制结构】第五节:流程的转移控制

目录 goto 语句 break 语句 示例:使用 goto 和 break 实现读入正整数程序,遇负数终止 用 goto 语句编程实现 用 break 语句编程实现 break 语句与 goto 语句的区别 continue 语句 break 语句与 continue 语句的区别 示例:使用 conti…

香橙派Zero3部署Talebook电子书库结合内网穿透随时随地享受阅读乐趣

文章目录 前言1. 添加镜像源2. 安装Talebook3. 简单使用介绍4. 安装内网穿透工具5. 配置固定公网地址 前言 本文主要介绍如何在刷了CasaOS轻NAS系统的香橙派Orange Pi Zero3中,使用Docker本地部署Talebook电子书管理系统并结合cpolar内网穿透实现远程管理本地书籍与…

DS二叉树--赫夫曼树解码

题目描述 已知赫夫曼编码算法和程序,在此基础上进行赫夫曼解码 可以增加一个函数:int Decode(const string codestr, char txtstr[]);//输入编码串codestr,输出解码串txtstr 该方法如果解码成功则返回1,解码失败则返回-1&…

Browserslist 配置

Browserslist 是一个工具和规范,用于定义和共享支持的浏览器列表,以便在前端开发中管理不同工具的兼容性。这些工具可以包括 Babel、Autoprefixer、ESLint 等,它们都可以使用 Browserslist 提供的配置来确定应支持哪些浏览器及其版本。 主要…

【Springboot问题】创建springboot项目后没有Resources文件夹及application文件

问题描述: 在创建springboot项目之后,由于项目识别的问题,没有出现资源文件夹以及application文件。 解决方法: 但是此刻依旧没有application.yml文件,创建