26.<Set>用法 and <Map>用法

Set

markdown 复制代码
    集合。表示没有重复元素的集合,特点是:唯一,无序。
如果放在set中的元素有重复的,它会自动去重:只保留一个
Scala 复制代码
def main(args: Array[String]): Unit = {
  val set1  = Set(1,2,3,1,1,1,1,1,1)

  println(set1)
}                   结果:Set(1, 2, 3)
理解 可变和不可变
arduino 复制代码
    可变(mutable):可以直接操作这个容器中的数据,例如:添加。
    不可变(immutable):不能修改容器中的数据。
    默认情况下,使用的Set是不可变的。
Scala 复制代码
def main(args: Array[String]): Unit = {
    val set1  = scala.collection.immutable.Set(1,2,3,1,1,1,1)
    val set2 = scala.collection.mutable.Set(1,2,3)
// 可变的Set可以直接修改它自己
    set2 += 20
// 不可变的set不能直接修改它自己
//    set1 += 2
    println(set2)
  }
添加,删除,判断,合并,交集,差集
Scala 复制代码
  def main(args: Array[String]): Unit = {
//    可变Set
    val set1 = scala.collection.mutable.Set(1,2,3)
//    1.添加
    set1 += 1
    set1 += 4
//    2.删除
    set1 -= 2
//    3.判断一个元素是否存在
    val value = 3
    if (set1.contains(value)){
      println(s"${value}存在")
    } else {
      println(s"${value}不存在")
    }
//    4.合并另一个Set
    val set2 = scala.collection.mutable.Set("语文")
    val set3 = scala.collection.mutable.Set("数学","英语")
    set2 ++= set3
    println(set2)
//    5.交集
    val set4 = scala.collection.mutable.Set("唱歌","跳舞")
    val set5 = scala.collection.mutable.Set("打游戏","打球","跳舞")

    val set6 = set4.intersect(set5)
    println(set6)
//    5.差集
    val set7 = scala.collection.mutable.Set("唱歌","跳舞")
    val set8 = scala.collection.mutable.Set("打游戏","打球","跳舞")

    val set9 = set7.diff(set8)

    println(set9)
  }

Map映射

//Map :映射
arduino 复制代码
    //        键值对,键不能有相同的!
    //        (key,value)
Scala 复制代码
  def main(args: Array[String]): Unit = {
    val map1 = Map(("alice" -> 90),("bob" -> 80),("bob" -> 100))
//    bob这个键有重复,只保留一个
    println(map1)
  }
添加,删除,查询,循环输出所有
Scala 复制代码
  def main(args: Array[String]): Unit = {
    val map1 = scala.collection.mutable.Map(("alice" -> 90),("bob" -> 80),("bob" -> 100))
//    bob这个键有重复,只保留一个
//    1.添加
    map1 +=("juddy" -> 90)
//    2.删除
    map1 -= "bob"
//    3.查询元素
    val key = "alice111"
    val ret = map1.get(key)
    if (ret.isDefined){
      println(s"${key}对于的值是:${ret.get}")
    } else {
      println(s"${key}不存在")
    }
//    4.for 循环输出所有
    for ((a,b) <- map1){
      println(s"${a},${b}")
    }

    map1.foreach({
      case (key,value) => {
        println(s"${key},${value}")
      }
    })
  }
相关推荐
开开心心就好3 天前
低年级识字练笔顺工具,电脑和安卓端都能用
前端·javascript·网络·安全·scala·erlang·语音识别
开开心心就好5 天前
清理此电脑网盘图标工具,开源免费好用
网络·网络协议·tcp/ip·智能手机·电脑·scala·erlang
典典分享指南8 天前
用结构化数据管理产品知识库
scala·bash·batch·actionscript
Thomas214311 天前
scala 闭包
开发语言·后端·scala
江畔柳前堤12 天前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native
Thomas214320 天前
Java scala 数组 链表
java·链表·scala
江畔柳前堤21 天前
消息队列:从直觉到精通的完整认知地图
开发语言·人工智能·算法·机器学习·ruby on rails·scala
hopsky1 个月前
《Scala 学习手册》核心内容详解
人工智能·学习·scala
abcy0712131 个月前
scala playframework 搭建与新建controller教程
scala
lpfasd1231 个月前
编程语言榜单变迁分析
开发语言·后端·scala