Map——练习题

46 阅读3分钟

使用scala编程,完成如下功能。

  1. 创建一个可变 Map,用于存储图书馆中的书籍信息(键为书籍编号,值为包含书籍名称、作者、库存数量的元组),初始化为包含几本你喜欢的书籍信息。
val map1 = mutable.Map(
  101 ->("百年孤独","加西亚","库存数量:12"),
  102 -> ("红楼梦","曹雪芹","库存数量:16")
)
  1. 使用 += 操作符添加两本新的书籍到图书馆集合中。
map1 += (103 -> ("西游记","吴承恩","库存数量:21"))
map1 += (104 -> ("三国演义","罗贯中","库存数量:9"))
  1. 根据书籍编号查询某一本特定的书籍信息,使用 get 方法,并输出结果。
val ret = map1.get(102)
if(ret.isDefined){
  println(ret.get)
}
  1. 修改某本书籍的库存数量(假设可以通过键找到对应的元组并修改其中的值,这里体现可变 Map 的特性)。
val id = 103
val name = "吴承恩"
val kcNew = "库存数量:18"
map1(id) = (map1(id)._1,name,kcNew)
  1. 使用 -= 操作符从图书馆集合中删除一本书。
map1 -= 104
  1. 遍历图书馆书籍 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)