Scala 中的Set
Set :集合。表示没有重复元素的集合, 特点: 唯一,无序。
1. Set 有可变 (mutable) 和不可变 (immutable) 两种类型。不可变 Set 创建后元素不能修改; 可变 Set 可对元素进行添加、删除等操作,这两种类型能满足不同场景需求。
//Set
import scala.collection.mutable
// 特点:元素要唯一
object Test11 {
def main(args: Array[String]): Unit = {
//1. 定义Set
// val set1=Set[元素类型](元素1,元素2,.....)
// 元素的类型可以省略
// val set1=Set[String]("小花","小明","小明")
// val set1=Set("小花","小明","小明")
// println(set1)
//不可变Set,默认使用的Set就是不可变的!
// val course=Set("语文","数学")
// val course1=course + "英语"
// println(course,course1)
//可变Set,需要额外去引入包
val course=mutable.Set("语文","数学")
println(course)
}
}
2. 对于可变Set,我们可以使用 += 操作符来添加元素
//2.添加
course+="英语"
println(course)
3. 对于可变Set,我们可以使用 -= 操作符来删除元素
//3.删除
course-="语文"
4. 添加一个Set
//4.添加一个Set
course += mutable.Set("体育","音乐")
println(course)
5. 查询元素是否存在
//5.查询 元素是否存在。contains
val rs=course.contains("体育1")
//rs 是 true,false。是Boolean格式。
println(s"体育是否存在:${rs}")
6. 集合操作
val xiaohua =mutable.Set("语文","数学","英语")
val xiaoming =mutable.Set("语文","体育","音乐")
// 问题1: 他们一共选了哪些课?
// 并集
val rs2=xiaohua.union(xiaoming)
println(s"哪些课是他们都选了的? ${rs2}")
// 问题2:哪些课是小花选了,小明没有选?
// 差集 diff
val rs3=xiaohua.diff(xiaoming)
println(s"哪些课是他们都选了的? ${rs3}")
// 问题3:哪些课是他们都选了的?
// 交集
val rs1=xiaohua.intersect(xiaoming)
println(s"哪些课是他们都选了的? ${rs1}")