Scala | Map 映射

31 阅读1分钟

一、Map 的定义和创建

①.Map是一种存储键值对的数据结构,每个键在 Map 中是唯一的。

②.map:用来表示键值对格式,映射

在 Scala 中,我们可以使用多种方式创建 Map。

键值对:
  • key + value 结构

代码:

def main(args: Array[String]): Unit = {

  val map1 = scala.collection.mutable.Map((42 -> "湖北省"), (14 -> "山西省"))
  
  println(map1)
}

运行结果:

屏幕截图 2025-12-01 083336.png

在默认情况下,不写任何的导入语句和包名,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)
  }

}

运行结果:

屏幕截图 2025-12-01 084452.png

二、常见键值对操作:

1. 添加

2. 删除

3. 查询:根据 key 找 value

4. 遍历

import scala.collection.mutable

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)  // 如果有输出对应其省份,如果没有则输出空值
    if(ret.isDefined) {
      println(ret.get)
    }

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

    println(map1)
  }

运行结果:

屏幕截图 2025-12-01 092524.png