1. 创建并初始化可变 Set
首先,我们需要导入 Scala 的可变集合库,并创建一个可变的 Set 来存储图书馆的书籍。
// 导入可变集合
import scala.collection.mutable
object LibrarySetDemo {
def main(args: Array[String]): Unit = {
// 1. 创建可变 Set 并初始化
val libraryBooks: mutable.Set[String] = mutable.Set(
"Java 编程思想",
"Scala 实战",
"Effective Java",
"设计模式:可复用面向对象软件的基础"
)
println("初始图书馆书籍: " + libraryBooks)
}
}
2. 向集合中添加新书籍
使用 += 操作符可以方便地向可变 Set 中添加元素:
// 2. 添加两本新的书籍
libraryBooks += "Python 从入门到实践"
libraryBooks += "算法导论"
println("\n添加新书后的图书馆: " + libraryBooks)
3. 从集合中删除书籍
使用 -= 操作符可以从 Set 中删除指定元素:
// 3. 删除一本书
libraryBooks -= "Effective Java"
println("\n删除一本书后的图书馆: " + libraryBooks)
4. 检查书籍是否存在
使用 contains 方法可以检查某个元素是否存在于 Set 中:
// 4. 检查特定书籍是否存在
val bookToCheck = "Python 从入门到实践"
val exists = libraryBooks.contains(bookToCheck)
println(s"\n'$bookToCheck' 是否在图书馆中: $exists")
val anotherBook = "JavaScript 高级程序设计"
println(s"'$anotherBook' 是否在图书馆中: ${libraryBooks.contains(anotherBook)}")
5. 创建第二个图书馆集合
让我们再创建一个可变 Set 来表示另一个图书馆:
// 5. 创建另一个图书馆的书籍集合
val anotherLibrary: mutable.Set[String] = mutable.Set(
"Python 从入门到实践",
"深入理解计算机系统",
"Scala 实战",
"数据结构与算法分析"
)
println("\n另一个图书馆的书籍: " + anotherLibrary)
6. 计算两个集合的并集
使用 union 方法(或 ++ 操作符)可以得到两个集合的并集
// 6. 求两个图书馆的并集
val unionBooks = libraryBooks.union(anotherLibrary)
println("\n两个图书馆的并集: " + unionBooks)
7. 计算两个集合的交集
使用 intersect 方法可以得到两个集合的交集:
// 7. 求两个图书馆的交集
val intersectBooks = libraryBooks.intersect(anotherLibrary)
println("\n两个图书馆的交集: " + intersectBooks)
完整代码
初始图书馆书籍: Set(Java 编程思想, Scala 实战, Effective Java, 设计模式:可复用面向对象软件的基础)
添加新书后的图书馆: Set(Python 从入门到实践, Java 编程思想, Scala 实战, Effective Java, 算法导论, 设计模式:可复用面向对象软件的基础)
删除一本书后的图书馆: Set(Python 从入门到实践, Java 编程思想, Scala 实战, 算法导论, 设计模式:可复用面向对象软件的基础)
'Python 从入门到实践' 是否在图书馆中: true
'JavaScript 高级程序设计' 是否在图书馆中: false
另一个图书馆的书籍: Set(Python 从入门到实践, 深入理解计算机系统, Scala 实战, 数据结构与算法分析)
两个图书馆的并集: Set(Python 从入门到实践, Java 编程思想, Scala 实战, 算法导论, 深入理解计算机系统, 数据结构与算法分析, 设计模式:可复用面向对象软件的基础)
两个图书馆的交集: Set(Python 从入门到实践, Scala 实战)