Set集合
1. Set简介
Set集合描述了无序、数据不可重复的集合,它是一个trait, 不能直接构建对象, 使用伴生对象默认构建的是不可变集合。
2. 不可变Set
- 声明定义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)
}
运行结果: 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)
}
运行结果:
3. 可变Set
- 声明定义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)
}
- 操作可变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)
}
运行结果: