Skip to content

Set集合

1. Set简介

Set集合描述了无序、数据不可重复的集合,它是一个trait, 不能直接构建对象, 使用伴生对象默认构建的是不可变集合。
Alt text

2. 不可变Set

  1. 声明定义Set
scala
def main(args: Array[String]): Unit = {
    // 构建Set,顺序不固定
    val set1 = Set(1, 3, 8, 100, 89)
    println(set1)
    // Set集合内部不能重复
    val set2: Set[Int] = Set(1, 1, 2, 2, 1, 1)
    println(set2)
}

运行结果:
Alt text 2. 操作Set

scala
def main(args: Array[String]): Unit = {
    // 构建Set,顺序不固定
    val set1 = Set(1, 3, 8, 100, 89)
    println(set1)
    // Set集合内部不能重复
    val set2: Set[Int] = Set(1, 1, 2, 2, 1, 1)
    println(set2)
    // 添加元素
    val set3 = set1 + 55
    println(set3)
    // 删除元素
    val set4 = set1 - 1
    println(set4)
    // 批量添加
    val set5 = set1 ++ Set(5, 6, 7)
    println(set5)
    println(set2)
    // 访问元素
    set4.foreach(println)
    println("-------------------------")
    // 访问指定元素
    println(set5.max)
}

运行结果:
Alt text

3. 可变Set

  1. 声明定义Set 默认情况下,Scala使用的是不可变集合,如果你想使用可变集合,需要引用scala.collection.mutable.Set包
scala
def main(args: Array[String]): Unit = {
    // 可变的Set需要包名进行区分的
    val set1 = mutable.Set(1, 2, 4)
    val set2 = mutable.Set(1, 2, 3, 3, 1, 2)
    println(set1)
    println(set2)
}
  1. 操作可变Set
scala
def main(args: Array[String]): Unit = {
    // 可变的Set需要包名进行区分的
    val set1 = mutable.Set(1, 2, 4)
    val set2 = mutable.Set(1, 2, 3, 3, 1, 2)
    // set没有append,insert方法,因为没有顺序的概念
    set1.add(3)
    // 修改数据
    // 第一个参数为数据,
    // 第二个参数为状态,true表示添加进去,如果有的什么也不做, false表示删除,如果没有什么也不做
    set1.update(2, false)
    set1.update(5, true)
    println(set1)
    // 简写
    set2(6) = true
    println(set1)
    println(set2)
    // 删除元素
    set2.remove(3)
    println(set2)
}

运行结果:
Alt text