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}")
      }
    })
  }
相关推荐
hopsky6 天前
《Scala 学习手册》核心内容详解
人工智能·学习·scala
abcy07121316 天前
scala playframework 搭建与新建controller教程
scala
lpfasd12317 天前
编程语言榜单变迁分析
开发语言·后端·scala
戮漠summer1 个月前
Missing Semester 计算机教育中缺失的一课 Lecture 01 Shell
开发语言·后端·scala
醉熏的石头1 个月前
Ubuntu 中的编程语言(中)
linux·ubuntu·scala
Irene19912 个月前
Scala、Java、Python、JavaScript 的核心特性和应用场景(Python 的“单机“局限性:GIL 机制导致的多核并行缺陷)
java·javascript·python·scala
李白的天不白2 个月前
确认 Nginx 配置文件是否真的生效
scala
醉颜凉2 个月前
Scala自定义Monad实战:从理论到应用的完整指南
大数据·算法·scala
那晚的她2 个月前
Scala中Set集合
开发语言·后端·scala
IvanCodes2 个月前
二、Scala流程控制:分支与循环
大数据·scala