使用scala编程,完成如下功能。
- 创建一个可变 Map,用于存储图书馆中的书籍信息(键为书籍编号,值为包含书籍名称、作者、库存数量的元组),初始化为包含几本你喜欢的书籍信息。
- 使用 += 操作符添加两本新的书籍到图书馆集合中。
- 根据书籍编号查询某一本特定的书籍信息,使用 get 方法,并输出结果。
- 修改某本书籍的库存数量(假设可以通过键找到对应的元组并修改其中的值,这里体现可变 Map 的特性)。
- 使用 -= 操作符从图书馆集合中删除一本书。
- 遍历图书馆书籍 Map,并打印出每本书的信息。
package map
import scala.collection.mutable
object exercise01 {
def main(args: Array[String]): Unit = {
import scala.collection.mutable
val library = mutable.Map(
1 -> ("悲惨世界", "雨果", 5),
2 -> ("童年", "高尔基", 3),
3 -> ("简爱", "夏洛蒂", 1)
)
println("1. 初始库存:")
println(library)
library += (4 -> ("红与黑", "司汤达", 6), 5 -> ("高老头", "巴尔扎克", 8))
println("\n2. 添加新书后:")
println(library)
val bookId = 4
val bookInfo = library.get(bookId)
println(s"\n3. 查询编号${bookId}的书籍:")
bookInfo match {
case Some(info) => println(s"找到:$info")
case None => println("未找到该书籍")
}
val updateId = 2
library(updateId) = (library(updateId)._1, library(updateId)._2, 10)
println(s"\n4. 修改编号${updateId}的库存后:")
println(library)
val deleteId = 3
library -= deleteId
println(s"\n5. 删除编号${deleteId}后:")
println(library)
println("\n6. 遍历所有书籍:")
library.foreach { case (id, (name, author, stock)) =>
println(s"编号:$id,书名:$name,作者:$author,库存:$stock")
}
}
}
输出结果:
