使用scala编程,完成如下功能。
- 创建一个可变 Map,用于存储图书馆中的书籍信息(键为书籍编号,值为包含书籍名称、作者、库存数量的元组),初始化为包含几本你喜欢的书籍信息。
val map1 = mutable.Map(
101 ->("百年孤独","加西亚","库存数量:12"),
102 -> ("红楼梦","曹雪芹","库存数量:16")
)
- 使用 += 操作符添加两本新的书籍到图书馆集合中。
map1 += (103 -> ("西游记","吴承恩","库存数量:21"))
map1 += (104 -> ("三国演义","罗贯中","库存数量:9"))
- 根据书籍编号查询某一本特定的书籍信息,使用 get 方法,并输出结果。
val ret = map1.get(102)
if(ret.isDefined){
println(ret.get)
}
- 修改某本书籍的库存数量(假设可以通过键找到对应的元组并修改其中的值,这里体现可变 Map 的特性)。
val id = 103
val name = "吴承恩"
val kcNew = "库存数量:18"
map1(id) = (map1(id)._1,name,kcNew)
- 使用 -= 操作符从图书馆集合中删除一本书。
map1 -= 104
- 遍历图书馆书籍 Map,并打印出每本书的信息。
for((key,value) <- map1){
println(s"编号为${key}这本书籍的信息是:${value}")
}
整体代码
object lianxi_map {
import scala.collection.mutable
def main(args: Array[String]): Unit = {
//1. 创建一个可变 Map,用于存储图书馆中的书籍信息(键为书籍编号,值为包含书籍名称、作者、库存数量的元组),初始化为包含几本你喜欢的书籍信息。
val map1 = mutable.Map(
101 ->("百年孤独","加西亚","库存数量:12"),
102 -> ("红楼梦","曹雪芹","库存数量:16")
)
// 2. 使用 += 操作符添加两本新的书籍到图书馆集合中。
map1 += (103 -> ("西游记","吴承恩","库存数量:21"))
map1 += (104 -> ("三国演义","罗贯中","库存数量:9"))
// 3. 根据书籍编号查询某一本特定的书籍信息,使用 get 方法,并输出结果。
val ret = map1.get(102)
if(ret.isDefined){
println(ret.get)
}
// 4. 修改某本书籍的库存数量(假设可以通过键找到对应的元组并修改其中的值,这里体现可变 Map 的特性)。
val id = 103
val name = "吴承恩"
val kcNew = "库存数量:18"
map1(id) = (map1(id)._1,name,kcNew)
println(map1)
// 5. 使用 -= 操作符从图书馆集合中删除一本书。
map1 -= 104
// 6. 遍历图书馆书籍 Map,并打印出每本书的信息。
for((key,value) <- map1){
println(s"编号为${key}这本书籍的信息是:${value}")
}
}
}
结果
(红楼梦,曹雪芹,库存数量:16)
HashMap(104 -> (三国演义,罗贯中,库存数量:9), 101 -> (百年孤独,加西亚,库存数量:12), 102 -> (红楼梦,曹雪芹,库存数量:16), 103 -> (西游记,吴承恩,库存数量:18))
编号为101这本书籍的信息是:(百年孤独,加西亚,库存数量:12)
编号为102这本书籍的信息是:(红楼梦,曹雪芹,库存数量:16)
编号为103这本书籍的信息是:(西游记,吴承恩,库存数量:18)