16Map

本文最后更新于 2021-08-05 11:42:59

Map

不可变

object MapDemo {
  def main(args: Array[String]): Unit = {
    //创建不可变Map
    //内部维护了元组
    val map1 = Map[String, Int](("1", 1), ("2", 2))
    val map2 = Map[String, Int]("a" -> 1, "b" -> 2)


    for (m <- map1) {
      println(m._1)
      println(m._2)
    }

    for ((k, v) <- map1) {
      //模式匹配
      println(k)
      println(v)
    }

    for ((k, 1) <- map1) {
      //只有k为1是才进循环
      println(k)
    }

    //添加元素
    //产生新Map
    val map3 = map1 + ("c" -> 3)

    //移除元素
    val map = map1 - "1"

    //把map2添加到map1
    val map4 = map1 ++ map2

    //获取value
    //找不到抛异常
    val value = map1("1")

    val opt = map1.get("1")
    val value2 = opt.get
    //常用
    val i = map1.getOrElse("1",1)

  }

}

可变

import scala.collection.mutable

object MapDemo2 {

  def main(args: Array[String]): Unit = {
    val map1 = mutable.Map[String, Int](("1", 1), ("2", 2))

    map1 += (("3", 3))
    map1 += ("4" -> 4)
    map1 += "4" -> 4
    map1 -= "4"

    //修改
    //如果不存在就新增
    map1("1")=100
    map1.update("1",11)

    //如果不存在就插入
    map1.getOrElseUpdate("5",5)

  }
}

16Map
https://jiajun.xyz/2020/11/16/scala/16Map/
作者
Lambda
发布于
2020年11月16日
更新于
2021年8月5日
许可协议