可变 Set 实现图书馆管理系统

74 阅读2分钟

实训内容

图书馆书籍管理系统相关的练习。

内容要求:

1.创建一个可变 Set,用于存储图书馆中的书籍信息(假设书籍信息用字符串表示,如 “Java 编程思想”“Scala 实战” 等),初始化为包含几本你喜欢的书籍。

2.添加两本新的书籍到图书馆集合中,使用 += 操作符。

3.从图书馆集合中删除一本书,使用 -= 操作符。

4.检查某一本特定的书籍(如 “Python 从入门到实践”)是否在图书馆集合中,使用 contains 方法,并输出结果。

5.创建另一个可变 Set,表示另一个图书馆的书籍集合。

6.求出两个图书馆书籍集合的并集,使用 union 方法,并输出结果。

7.求出两个图书馆书籍集合的交集,使用 intersect 方法,并输出结果。

8.求出当前图书馆相对于另一个图书馆的差集,使用 diff 方法,并输出结果

代码展示

package 实训内容

import scala.collection.mutable

object base33 {
  def main(args: Array[String]): Unit = {
    // 1. 创建可变 Set,存储书籍信息
    val library1 = mutable.Set[String](
      "Scala 程序设计",
      "Java 编程思想",
      "Scala 实战"
    )

    println("=== 图书馆1初始书籍 ===")
    library1.foreach(book => println(s"《$book》"))

    // 2. 添加两本新书
    library1 += "Python 从入门到实践"
    library1 += "数据结构与算法分析"

    println("\n=== 添加新书后 ===")
    library1.foreach(book => println(s"《$book》"))

    // 3. 删除一本书
    library1 -= "Scala 实战"

    println("\n=== 删除《Scala 实战》后 ===")
    library1.foreach(book => println(s"《$book》"))

    // 4. 检查特定书籍是否存在
    val searchBook = "Python 从入门到实践"
    println(s"\n=== 检查《$searchBook》是否在图书馆 ===")
    if (library1.contains(searchBook)) {
      println(s"《$searchBook》在图书馆中")
    } else {
      println(s"《$searchBook》不在图书馆中")
    }

    // 5. 创建另一个图书馆的书籍集合
    val library2 = mutable.Set[String](
      "Java 编程思想",
      "Python 从入门到实践",
      "C++ Primer",
      "算法导论"
    )

    println("\n=== 图书馆2的书籍 ===")
    library2.foreach(book => println(s"《$book》"))

    // 6. 求并集
    val unionSet = library1.union(library2)
    println("\n=== 两个图书馆的并集 ===")
    unionSet.foreach(book => println(s"《$book》"))

    // 7. 求交集
    val intersectSet = library1.intersect(library2)
    println("\n=== 两个图书馆的交集 ===")
    intersectSet.foreach(book => println(s"《$book》"))

    // 8. 求差集(图书馆1相对于图书馆2)
    val diffSet = library1.diff(library2)
    println("\n=== 图书馆1相对于图书馆2的差集 ===")
    diffSet.foreach(book => println(s"《$book》"))
  }

}

结果展示

3301.png

3302.png

关键知识点总结

  1. 可变集合mutable.Set

  2. Set 操作

    • 添加:+=
    • 删除:-=
    • 检查:contains
    • 集合运算:unionintersectdiff