Map映射

22 阅读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:

package map
/*
*   01--->胡同学
*   02--->王同学
*
*
*
*   42 → 湖北省
*   14 → 山西省
*
*   鄂A → 武汉
*   鄂N → 潜江
*
*   建值对
*   key → value 结构
*
*   map:用来表示建值对格式。映射。
*
* */
//在每一个scala文件中,它都会自动导入一些包!
//import scala.collection.mutable.Map
//import scala.collection.immutable.Map
//默认情况下,不写任何的导入语句和包名,Map是表示不可变的,它不能使用 += 的方式添加新的建值对!

import scala.collection.mutable
object mao01 {

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

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

    println(map1)

  }

}

常规操作

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

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


//import scala.collection.immutable.Map
//默认情况下,不写任何的导入语句和包名,Map是表示不可变的,它不能使用 += 的方式添加新的建值对!

import scala.collection.mutable

object mao02 {

  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}")
    }

  }

}