1Set的定义
Set,集合。表示没有重复元素的集合,特点是:唯一,无序。
Set 有可变(mutable)和不可变(immutable)两种类型。不可变 Set 创建后元素不能修改,可变 Set 可对元素进行添加、删除等操作,这两种类型能满足不同场景需求。
2Set的代码格式
语法格式 val 变量名 = Set类型
val set1 = Set[Int]()
val set2 = Set[String]("apple","dog")
println(set1,set2)
注意:它的元素不能重复,例如 Set(1,1) ==> Set(1)
3不可变与可变 Set 的区别
对于存储学校固定课程的模块,因为课程信息一般是固定不变的,适合用不可变 Set。而学生选课情况可能会随着学生的操作而改变,适合用可变 Set。
import scala.collection.immutable.Set
// 创建一个不可变 Set 表示学校固定课程
val fixedCourses: Set[String] = Set("数学", "语文", "英语")
// 尝试修改不可变 Set(以下代码会编译通过,但不会改变 fixedCourses 的值,而是创建一个新的 Set)
val newFixedCourses = fixedCourses + "物理"
println(fixedCourses) // 输出: Set(数学, 语文, 英语)
println(newFixedCourses) // 输出: Set(数学, 语文, 英语, 物理)
4Set常见操作
1.添加元素 对于可变 Set,我们可以使用 += 操作符来添加元素。
import scala.collection.mutable.Set
val libraryBooks: mutable.Set[String] = mutable.Set("Java 编程思想", "数据结构")
libraryBooks += "算法导论"
println(libraryBooks)
2.删除元素 对于可变 Set,我们可以使用 -= 操作符来删除元素。
import scala.collection.mutable.Set
val students: mutable.Set[String] = mutable.Set("张三", "李四", "王五")
students -= "王五"
println(students)
3.添加set 对于不可变Set,可以设置为 val set3 = set1 ++ set2;对于可变Set,可以设置为 set1 ++= set2
import scala.collection.mutable.Set
val set1 = Set("张三", "李四", "王五")
set1 ++= Set("王五")
println(set1)
4.查询元素是否存在 我们可以使用 contains 方法来检查元素是否在 Set 中
import scala.collection.immutable.Set
val clubMembers: Set[String] = Set("小明", "小红", "小刚")
println(clubMembers.contains("小明"))
5.集合操作-并集 我们可以使用 union 方法得到两个 Set 的并集。
import scala.collection.immutable.Set
val class1Students: Set[String] = Set("赵一", "钱二", "孙三")
val class2Students: Set[String] = Set("孙三", "李四", "周五")
val allStudents: Set[String] = class1Students.union(class2Students)
println(allStudents)
6.集合操作-交集 我们可以使用 intersect 方法获取两个 Set 的交集。
import scala.collection.immutable.Set
val activity1Participants: Set[String] = Set("甲", "乙", "丙")
val activity2Participants: Set[String] = Set("丙", "丁", "戊")
val intersectionParticipants: Set[String] = activity1Participants.intersect(activity2Participants)
println(intersectionParticipants)
7.集合操作-差集 我们可以使用 diff 方法返回一个 Set 相对于另一个 Set 的差集
import scala.collection.immutable.Set
val semester1Courses: Set[String] = Set("语文", "数学", "英语")
val semester2Courses: Set[String] = Set("数学", "物理", "化学")
val differenceCourses: Set[String] = semester1Courses.diff(semester2Courses)
println(differenceCourses)
此代码创建两个表示不同学期课程的 Set,使用 diff 方法求出第一个学期课程相对于第二个学期课程的差集并打印。