package map
import scala.collection.mutable.Map
object LibraryMapDemo {
def main(args: Array[String]): Unit = {
val library: Map[Int, (String, String, Int)] = Map(
1 -> ("《活着》", "余华", 50),
2 -> ("《百年孤独》", "加西亚·马尔克斯", 30),
3 -> ("《追风筝的人》", "卡勒德·胡赛尼", 45)
)
println("初始图书馆书籍信息:")
library.foreach { case (id, (title, author, stock)) =>
println(s"编号:$id,书名:$title,作者:$author,库存:$stock")
}
println()
library += 4 -> ("《小王子》", "安托万·德·圣-埃克苏佩里", 60)
library += 5 -> ("《哈利·波特与魔法石》", "J.K.罗琳", 75)
println("添加两本新书后:")
library.foreach { case (id, (title, author, stock)) =>
println(s"编号:$id,书名:$title,作者:$author,库存:$stock")
}
println()
val bookIdToFind = 2
val bookInfo = library.get(bookIdToFind)
println(s"查询编号为 $bookIdToFind 的书籍:")
bookInfo match {
case Some((title, author, stock)) =>
println(s"找到书籍:编号:$bookIdToFind,书名:$title,作者:$author,库存:$stock")
case None =>
println(s"未找到编号为 $bookIdToFind 的书籍")
}
println()
val bookIdToUpdate = 1
library.get(bookIdToUpdate) match {
case Some((title, author, oldStock)) =>
val newStock = oldStock + 20
library += bookIdToUpdate -> (title, author, newStock)
println(s"更新编号为 $bookIdToUpdate 的书籍库存:从 $oldStock 变为 $newStock")
case None =>
println(s"未找到编号为 $bookIdToUpdate 的书籍,无法更新库存")
}
println()
val bookIdToDelete = 3
library -= bookIdToDelete
println(s"删除编号为 $bookIdToDelete 的书籍后:")
library.foreach { case (id, (title, author, stock)) =>
println(s"编号:$id,书名:$title,作者:$author,库存:$stock")
}
println()
println("最终图书馆书籍信息:")
for ((id, (title, author, stock)) <- library) {
println(f"书籍信息:编号=$id%2d,书名=$title%-25s,作者=$author%-20s,库存=$stock%3d")
}
}
}