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}")
      }
    })
  }
相关推荐
、BeYourself3 天前
Scala 数据类型
开发语言·后端·scala
howard20053 天前
1.2 Scala变量与数据类型
scala·变量·数据类型·常量
渣渣盟3 天前
Flink定时器实战:处理时间与事件时间
大数据·flink·scala
howard20053 天前
1.1.4 Scala的使用方式
scala·交互方式·文件方式
、BeYourself5 天前
Scala 基础语法
开发语言·scala
渣渣盟9 天前
Flink实现TopN URL访问量统计
大数据·flink·scala
普通网友9 天前
探索Perl在ASIC中的应用:深入标量、数组和哈希的应用
scala·哈希算法·perl
zxfBdd22 天前
Error:scala: No ‘scala-library*.jar‘ in Scala compiler classpath in Scala SDK
大数据·scala·jar
SHeqSpMeS1 个月前
雷达信号处理:运动目标相参积累——Radon-Fourier算法,用于检测运动目标,实现距离和...
scala