scala的Map映射

41 阅读2分钟

Map的定义

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

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

Map的创建

在每一个scala文件中,它都会自动导入一些包。默认情况下,不写任何的导入语句和包名,默认下的Map是表示不可变的,不能使用 += 的方式添加新的键值对。

Map有两种类型:

1.不可变 Map:import scala.collection.immutable.Map

2.可变 Map:需导入import scala.collection.mutable.Map

import scala.collection.mutable // 导入
// import scala.collection.immutable.Map   默认

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

    // 添加一个元素
    map1 += (19 -> "河南省")
    println(map1)  // HashMap(42 -> 湖北省, 19 -> 河南省, 14 -> 山西省)
  }
}

Map的常见操作

/*
* 常见操作
*   1.添加键值对
*   2.删除:根据key值来删除
*   3.查询:根据key去找value
*   4.遍历
* */

import scala.collection.mutable
// import scala.collection.immutable.Map

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

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

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

    // 2.可变Map删除:根据key值来删除
    map1 -= 42

    // 3.查询:根据key去找value
    // 例:14对应哪个省?
    val ret = map1.get(14) // 如果找到了就有值,没有找到就是None
    if(ret.isDefined){
      println(ret.get)
    }

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

操作4运行结果如图:

image.png