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

Scala 中的Set

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.添加一个Set
    course += mutable.Set("体育","音乐")
    println(course)

5. 查询元素是否存在

    //5.查询 元素是否存在。contains
    val 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:哪些课是小花选了,小明没有选?
//    差集 diff
    val rs3=xiaohua.diff(xiaoming)
    println(s"哪些课是他们都选了的? ${rs3}")
//    问题3:哪些课是他们都选了的?
//    交集
    val rs1=xiaohua.intersect(xiaoming)
    println(s"哪些课是他们都选了的? ${rs1}")


http://www.kler.cn/a/382279.html

相关文章:

  • Java爬虫获取1688 item_search_img接口详细解析
  • 领域自适应
  • pro文件转换为CMakeLists.txt文件,QT官方工具使用教程
  • shutil 标准库: Python 文件操作的万用刀
  • 【TF-IDF】Hugging Face Model Recommendation System
  • 设计模式12:状态模式
  • Python从入门到高手7.5节-实现冒泡排序算法
  • JUC笔记之ReentrantLock
  • 基础 IO(文件系统 inode 软硬链接)-- 详解
  • 从SSL到TLS——互联网传输的护卫军
  • 程序中怎样用最简单方法实现写excel文档
  • Dubbo详解及其应用
  • SpringBoot在线教育系统:微服务架构
  • EPSON机械手与第三方相机的校准功能设计By python
  • 高亚科技签约酸动力,助力研发管理数字化升级
  • 【制造业&仓库】流水线能源设备检测系统源码&数据集全套:改进yolo11-DCNV2-Dynamic
  • 【Golang】Golang的Map的线程安全问题
  • 01 Oracle 数据库存储结构深度解析:从数据文件到性能优化的全链路探究
  • 【论文速看】DL最新进展20241106-图像分类、图像分割、时间序列预测
  • 【p2p、分布式,区块链笔记 Torrent】WebTorrent的add和seed函数
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day8
  • 【vue-pdf】简单封装pdf预览组件
  • Linux信号_信号的保存
  • 应用层知识点总结2
  • 华为海思招聘-芯片与器件设计工程师-模拟芯片方向- 机试题-真题套题题目——共8套(每套四十题)
  • 一文了解CANFD基础