16Map

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

Map

不可变

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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)

}

}

可变

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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日
许可协议