1.创建一个可变 Map,用于存储图书馆中的书籍信息(键为书籍编号,值为包含书籍名称、作者、库存数量的元组),初始化为包含几本你喜欢的书籍信息。
2.使用 += 操作符添加两本新的书籍到图书馆集合中。
3.根据书籍编号查询某一本特定的书籍信息,使用 get 方法,并输出结果。
4.修改某本书籍的库存数量(假设可以通过键找到对应的元组并修改其中的值,这里体现可变 Map 的特性)。
5.使用 -= 操作符从图书馆集合中删除一本书。
6.遍历图书馆书籍 Map,并打印出每本书的信息。
package Map
import scala.collection.mutable.Map
object shixun {
def main(args: Array[String]): Unit = {
// 1. 创建可变 Map,存储书籍信息(键为书籍编号,值为包含名称、作者、库存的元组)
val booksMap: Map[String, (String, String, Int)] = Map(
"B001" -> ("《小王子》", "圣埃克苏佩里", 10),
"B002" -> ("《活着》", "余华", 15),
"B003" -> ("《百年孤独》", "加西亚·马尔克斯", 8)
)
println("初始书籍信息:")
booksMap.foreach { case (id, (name, author, stock)) =>
println(s"编号:$id,名称:$name,作者:$author,库存:$stock")
}
// 2. 使用 += 添加两本新书
booksMap += ("B004" -> ("《三体》", "刘慈欣", 20))
booksMap += ("B005" -> ("《解忧杂货店》", "东野圭吾", 12))
println("\n添加新书后:")
booksMap.foreach { case (id, (name, author, stock)) =>
println(s"编号:$id,名称:$name,作者:$author,库存:$stock")
}
// 3. 根据编号查询特定书籍(用 get 方法)
val bookIdToFind = "B002"
val foundBook = booksMap.get(bookIdToFind)
foundBook match {
case Some((name, author, stock)) =>
println(s"\n查询编号为$bookIdToFind 的书籍:名称:$name,作者:$author,库存:$stock")
case None =>
println(s"\n未找到编号为$bookIdToFind 的书籍")
}
// 4. 修改某本书的库存数量(这里以 B001 为例,将库存改为 5)
val bookIdToUpdate = "B001"
if (booksMap.contains(bookIdToUpdate)) {
val (name, author, _) = booksMap(bookIdToUpdate)
booksMap(bookIdToUpdate) = (name, author, 5)
println(s"\n修改后,编号为$bookIdToUpdate 的书籍库存:${booksMap(bookIdToUpdate)._3}")
}
// 5. 使用 -= 删除一本书(以 B003 为例)
val bookIdToRemove = "B003"
booksMap -= bookIdToRemove
println(s"\n删除编号为$bookIdToRemove 的书籍后:")
booksMap.foreach { case (id, (name, author, stock)) =>
println(s"编号:$id,名称:$name,作者:$author,库存:$stock")
}
// 6. 遍历所有书籍信息并打印
println("\n最终所有书籍信息:")
booksMap.foreach { case (id, (name, author, stock)) =>
println(s"编号:$id,名称:$name,作者:$author,库存:$stock")
}
}
}