使用scala编程,完成如下功能。
- 创建一个可变 Map,用于存储图书馆中的书籍信息(键为书籍编号,值为包含书籍名称、作者、库存数量的元组),初始化为包含几本你喜欢的书籍信息。
- 使用 += 操作符添加两本新的书籍到图书馆集合中。
- 根据书籍编号查询某一本特定的书籍信息,使用 get 方法,并输出结果。
- 修改某本书籍的库存数量(假设可以通过键找到对应的元组并修改其中的值,这里体现可变 Map 的特性)。
- 使用 -= 操作符从图书馆集合中删除一本书。
- 遍历图书馆书籍 Map,并打印出每本书的信息。
import scala.collection.mutable
object map2 {
def main(args: Array[String]): Unit = {
val library = mutable.Map[String, (String, String, Int)](
"B01" -> ("罪与罚", "费奥多尔·米哈伊洛维奇·陀思妥耶夫斯基", 5),
"B02" -> ("罗生门", "芥川龙之介", 3),
"B03" -> ("山月记", "中岛敦", 7)
)
println("初始图书馆书籍信息:")
library.foreach { case (id, (name, author, stock)) =>
println(s"编号: $id, 名称: $name, 作者: $author, 库存: $stock")
}
println()
library += ("B04" -> ("人间失格", "太宰治", 6))
library += ("B05" -> ("污浊了的悲伤之中", "中原中也", 4))
println("添加新书后的图书馆书籍信息:")
library.foreach { case (id, (name, author, stock)) =>
println(s"编号: $id, 名称: $name, 作者: $author, 库存: $stock")
}
println()
val bookId = "B002"
val bookInfo = library.get(bookId)
bookInfo match {
case Some((name, author, stock)) =>
println(s"查询结果 - 编号: $bookId, 名称: $name, 作者: $author, 库存: $stock")
case None =>
println(s"未找到编号为 $bookId 的书籍")
}
println()
val updateBookId = "B001"
library.get(updateBookId) match {
case Some((name, author, stock)) =>
library(updateBookId) = (name, author, stock + 2)
println(s"已更新书籍 $name 的库存数量:$stock -> ${stock + 2}")
case None =>
println(s"未找到编号为 $updateBookId 的书籍")
}
println()
val removeBookId = "B003"
library -= removeBookId
println(s"已删除编号为 $removeBookId 的书籍")
println()
println("最终的图书馆书籍信息:")
library.foreach { case (id, (name, author, stock)) =>
println(s"编号: $id, 名称: $name, 作者: $author, 库存: $stock")
}
}
}
输出:
初始图书馆书籍信息:
编号: B01, 名称: 罪与罚, 作者: 费奥多尔·米哈伊洛维奇·陀思妥耶夫斯基, 库存: 5
编号: B02, 名称: 罗生门, 作者: 芥川龙之介, 库存: 3
编号: B03, 名称: 山月记, 作者: 中岛敦, 库存: 7
添加新书后的图书馆书籍信息:
编号: B01, 名称: 罪与罚, 作者: 费奥多尔·米哈伊洛维奇·陀思妥耶夫斯基, 库存: 5
编号: B02, 名称: 罗生门, 作者: 芥川龙之介, 库存: 3
编号: B03, 名称: 山月记, 作者: 中岛敦, 库存: 7
编号: B04, 名称: 人间失格, 作者: 太宰治, 库存: 6
编号: B05, 名称: 污浊了的悲伤之中, 作者: 中原中也, 库存: 4
未找到编号为 B002 的书籍
未找到编号为 B001 的书籍
已删除编号为 B003 的书籍
最终的图书馆书籍信息:
编号: B01, 名称: 罪与罚, 作者: 费奥多尔·米哈伊洛维奇·陀思妥耶夫斯基, 库存: 5
编号: B02, 名称: 罗生门, 作者: 芥川龙之介, 库存: 3
编号: B03, 名称: 山月记, 作者: 中岛敦, 库存: 7
编号: B04, 名称: 人间失格, 作者: 太宰治, 库存: 6
编号: B05, 名称: 污浊了的悲伤之中, 作者: 中原中也, 库存: 4