Set集

35 阅读2分钟

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 方法求出第一个学期课程相对于第二个学期课程的差集并打印。