Scala中Map的实训练习

39 阅读2分钟

实训内容

1. 创建一个可变 Map,用于存储图书馆中的书籍信息(键为书籍编号,值为包含书籍名称、作者、库存数量的元组),初始化为包含几本你喜欢的书籍信息。

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

3. 根据书籍编号查询某一本特定的书籍信息,使用 get 方法,并输出结果。

4. 修改某本书籍的库存数量(假设可以通过键找到对应的元组并修改其中的值,这里体现可变 Map 的特性)。

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

6. 遍历图书馆书籍 Map,并打印出每本书的信息。

运行代码

package map
import scala.collection.mutable.Map
object map03 {
  def main(args: Array[String]): Unit = {
    // 1. 创建初始可变Map(键:书籍编号;值:(书名, 作者, 库存)元组)
        val bookMap = Map(
          "B001" -> ("Java 编程思想", "Bruce Eckel", 20),
          "B002" -> ("Scala 实战", "Dean Wampler", 15),
          "B003" -> ("数据结构与算法分析", "Mark Allen Weiss", 18)
        )
    println("1. 初始书籍Map:")
    bookMap.foreach(println)

    // 2. 使用+=添加两本新书
    bookMap += ("B004" -> ("深入理解计算机系统", "Randal E.Bryant", 12))
    bookMap += ("B005" -> ("设计模式", "Erich Gamma", 10))
    println("\n2. 添加新书后的Map:")
    bookMap.foreach(println)

    // 3. 使用get查询指定书籍(以B002为例)
    val targetBook = bookMap.get("B002")
    println("\n3. 查询B002的信息:")
    targetBook match {
      case Some(info) => println(s"书籍信息:$info")
      case None => println("未找到该书籍")
    }

    // 4. 修改某本书的库存(以B001为例,库存改为25)
    bookMap("B001") = (bookMap("B001")._1, bookMap("B001")._2, 25)
    println("\n4. 修改B001库存后的信息:")
    println(s"B001:${bookMap("B001")}")

    // 5. 使用-=删除一本书(以B003为例)
    bookMap -= "B003"
    println("\n5. 删除B003后的Map:")
    bookMap.foreach(println)

    // 6. 遍历Map并打印每本书信息
    println("\n6. 最终书籍信息列表:")
    bookMap.foreach { case (id, (name, author, stock)) =>
      println(s"编号:$id | 书名:$name | 作者:$author | 库存:$stock")
    }
  }
}

运行结果

image.png