合并2025.12.3

39 阅读1分钟
package set

/*
* 理解 可变和不可变
* 可变(mutable):可以直接操作这个容器中的数据,例如:添加。
* 不可变(immutable):不能修改容器中的数据。
*
* 默认情况下,使用的Set是不可变的。
* */

object set02 {
  def main(args: Array[String]): Unit = {
    // 默认情况下,使用的Set是不可变的。
    val set1 = scala.collection.immutable.Set(1,2,3,1,1,1)

    // 可变Set
    val set2 = scala.collection.mutable.Set(1,2,3)

    // 添加操作
    // 可变的Set可以直接修改它自己
    set2 += 20
    // 不可变的set不能直接修改它自己
    // set1 += 2
    println(set2)
  }
}
  • 不可变(immutable) :容器创建后,内部数据不能直接修改(比如添加、删除元素)。
  • 可变(mutable) :容器创建后,支持直接操作内部数据

关键总结

  1. Scala 集合默认不可变,保证线程安全 + 数据稳定;
  2. 可变集合需显式引入scala.collection.mutable
  3. 不可变集合的 “修改” 实际是生成新容器(比如immutableSet + 4会返回新 Set),而可变集合是直接修改自身。