1. (论述题)使用scala编程,完成如下功能。1. 创建一个可变 Map,用于存储图书馆中的书籍信息(键为书籍编号,值为包含书籍名称、作者、库存数量的元组),初始化为包含几本你喜欢的书籍信息。2. 使用 += 操作符添加两本新的书籍到图书馆集合中。3. 根据书籍编号查询某一本特定的书籍信息,使用 get 方法,并输出结果。4. 修改某本书籍的库存数量(假设可以通过键找到对应的元组并修改其中的值,这里体现可变 Map 的特性)。5. 使用 -= 操作符从图书馆集合中删除一本书。6. 遍历图书馆书籍 Map,并打印出每本书的信息。
package Map
import scala.collection.mutable
object map2 {
def main(args: Array[String]): Unit = {
val shuji = mutable.Map(
"A1" -> ("《AAA》", "bbb", 10),
"A2" -> ("《BBB》", "ccc", 15),
"A3" -> ("《CCC》", "ddd", 8)
)
println(shuji)
shuji += ("A4" -> ("《DDD》", "eee", 12))
shuji += ("A5" -> ("《EEE》", "fff", 7))
println(shuji)
val chaId = "A2"
val book = shuji.get(chaId)
println(s"\n=== 查询书籍编号 $chaId ===")
if (book.isDefined) {
val (name, author, kucun) = book.get
println(s"找到书籍:书名=$name, 作者=$author, 库存=$kucun")
} else {
println(s"未找到编号为 $chaId 的书籍")
}
val xiugaiId = "B003"
println(s"\n=== 修改书籍编号 $xiugaiId 的库存 ===")
if (shuji.contains(xiugaiId)) {
val (name, author, oldkucun) = shuji(xiugaiId)
val xinkucun = oldkucun + 5
shuji(xiugaiId) = (name, author, xinkucun)
println(s"最终:原=$oldkucun → 新=$xinkucun")
} else {
println(s"未找到编号为 $xiugaiId 的书籍,无法更新")
}
val deleteId = "B005"
shuji -= deleteId
println(s"\n=== 删除书籍编号 $deleteId 后 ===")
println(shuji)
println("\n=== 图书馆最终书籍清单 ===")
for ((bookId, (name, author, kucun)) <- shuji) {
println(s"书籍编号:$bookId → 书名:$name, 作者:$author, 库存:$kucun 本")
}
}
}