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}")
      }
    })
  }
相关推荐
渣渣盟1 天前
Flink数据流高效写入HBase实战
大数据·flink·scala·apache·hbase
渣渣盟1 天前
Flink数据流写入Elasticsearch实战
elasticsearch·flink·scala
小坏讲微服务4 天前
Spring Cloud Alibaba 整合 Scala 教程完整使用
java·开发语言·分布式·spring cloud·sentinel·scala·后端开发
Kiri霧4 天前
Scala 循环控制:掌握 while 和 for 循环
大数据·开发语言·scala
pale_moonlight5 天前
十、 Scala 应用实践 (上)
大数据·开发语言·scala
小坏讲微服务5 天前
SpringCloud整合Scala实现MybatisPlus实现业务增删改查
java·spring·spring cloud·scala·mybatis plus
今天没有盐6 天前
Scala Map集合完全指南:从入门到实战应用
后端·scala·编程语言
BD_Marathon7 天前
sbt 编译打包 scala
开发语言·后端·scala
92747 天前
26 trait-多继承详解
scala