开发者学堂课程【Scala 核心编程 - 进阶:Map 的四种构建方式】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9040
Map 的四种构建方式
内容介绍:
一、构造不可变映射
二、构造可变映射
三、创建空的映射
四、对偶元组
一、构造不可变映射
Scala 中的不可变 Map 是有序,构建 Map 中的元素底层是 Tuple2类型(元组类型)。
构建不可变 Map 直接写 Map 就行,不需要引包,因为不可变的是默认的,如下面的案例。
1.案例
val map1 = Map("Alice”->10,"Bob”->20,"Kotlin”->"北京")
//默认情况下,key-value 的类型不做限制(支持 Any)
2.测试:
object MapDemo1 {
def main(args : Array[string]) : unit = {
//1.默认 Map 是 immutabLe. Map
//2.key-vaLue 类型支持Any
//3.在 Map 的底层,每对 key-value 是Tuple2
val map1 = Map("Alice" -> 10,"Bob" -> 20,"Kotlin" ->"北京")
println(map1)
}
}
二、构造可变映射
//需要指定可变 Map 的包
val map2 = scala.collection.mutable.Map("Alice" ->10, "Bob”-> 20,"Kotlin" -> 30)
1.重要代码:
import scala.collection.mutable
object MapDemo01{
val map1 = Map("Alice" -> 10,"Bob" -> 20,"Kotlin" ->"北京")
println(map1)
val map2 = scala.collection.mutable.Map("Alice" -> 10,"Bob" -> 20,"Kotlin" ->"北京")
println(map2)
}
运行结果:
Map("Alice" -> 10,"Bob" -> 20,"Kotlin" ->"北京")
Map"(Bob" -> 20,"Kotlin" ->"北京"Alice" -> 10)
2.可变和不可变的区别:
如果是可变的,则可以对 Map 做一个动态的改变,比如增加,删除,不可变不能完成该操作。
3.说明
(1)如果是可变的,从输出的结果看到,输出顺序和声明顺序不一致
(2)如果是不可变的,输出顺序和声明顺序一致
(3)不可变 Map 支持动态变化
三、创建空的映射
1.代码演示:
valmap3= new scala.collection.mutable.HashMap[String,Int]
println(map3)
运行结果为:
map3 = Map()
四、对偶元组
1.说明:
即创建包含键值对的二元组,和第一种方式等价,只是形式上不同而已。对偶元组就是只含有两个数据的元组。
2.代码演示:
val map4 = mutable.Map(("Alice",10),("Bob",20), ("Kotlin",”北京”))
println("map4="+ map4)
println(map4("A"))
运行结果为:
map4 =Map(Bob->20, Kotlin->北京,Alice->10)