Map映射

25 阅读2分钟

(一)、Map的定义和创建

假设我们要创建一个存储学生姓名和成绩的信息表,应该怎么用 Map 实现 呢?

Map是一种存储键值对的数据结构,每个键在 Map 中是唯一的。在 Scala 中,我们可以使用多种方式创建 Map。

Map 创建格式:

1.不可变 Map:val mapName: Map[KeyType, ValueType] = Map(key1 -> value1, key2 -> value2,...)

2.可变 Map(需导入scala.collection.mutable.Map):val mapName:

mutable.Map[KeyType, ValueType] = mutable.Map(key1 -> value2,...)

/**
 *
 * 键值对
 * key → value 结构
 *
 * map: 用来表示键值对格式。映射。
 */
//在每一个scala文件中,它都会自动导入一些包!

import scala.collection.mutable

//import scala.collection.immutable.Map

//默认情况下,不写任何的导入语句和包名,Map是表示不可变的,它不能使用 += 的方式添加新的键值对!
object map01 {

  def main(args: Array[String]): Unit = {
     //val map1 = Map((42 -> "湖北省"),(14 -> "山西省"))
    val map1 = mutable.Map((42 -> "湖北省"),(14 -> "山西省"))

    //添加一个元素
    map1 += (19 -> "河南省")

    println(map1)

  }

}

(二)、Map的常用方法

1.添加键值对 2.删除 3.查询:根据key去找value 4.遍历

/**
 *
 * 键值对
 * key → value 结构
 *
 * map: 用来表示键值对格式。映射。
 *
 * 常见操作
 *    1.添加键值对
 *    2.删除
 *    3.查询:根据key去找value
 *    4.遍历
 */

import scala.collection.mutable

//import scala.collection.immutable.Map

//默认情况下,不写任何的导入语句和包名,Map是表示不可变的,它不能使用 += 的方式添加新的键值对!
object map02 {

  def main(args: Array[String]): Unit = {
     //val map1 = Map((42 -> "湖北省"),(14 -> "山西省"))
    val map1 = mutable.Map((42 -> "湖北省"),(14 -> "山西省"))

    //1.添加一个元素
    //val map2 = map1 + (19 -> "河南省")
    map1 += (19 -> "河南省")

    //2.删除。删除根据key值来删除
    map1 -= 42

    //3. 14对应是哪个省?
    val ret = map1.get(14)//如果找到了,就有值;没有找到就是None
    if (ret.isDefined){
      println(ret.get)
    }

    println(map1)
    //4.for 遍历
    for ((key,value) <- map1){
      println(s"${value}身份证的前两位编号是${key}")
    }
  }
}