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) :容器创建后,支持直接操作内部数据
关键总结
- Scala 集合默认不可变,保证线程安全 + 数据稳定;
- 可变集合需显式引入
scala.collection.mutable; - 不可变集合的 “修改” 实际是生成新容器(比如
immutableSet + 4会返回新 Set),而可变集合是直接修改自身。