Map 的四种构建方式 | 学习笔记

简介: 快速学习 Map 的四种构建方式

开发者学堂课程【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)

相关文章
|
6月前
|
存储 安全 测试技术
【Go语言精进之路】构建高效Go程序:了解map实现原理并高效使用
【Go语言精进之路】构建高效Go程序:了解map实现原理并高效使用
66 3
|
6月前
|
存储 C++ 容器
【C++】学习笔记——map和set
【C++】学习笔记——map和set
36 0
|
前端开发
前端学习笔记202306学习笔记第三十八天-手写map2
前端学习笔记202306学习笔记第三十八天-手写map2
124 0
前端学习笔记202306学习笔记第三十八天-手写map2
|
前端开发
前端学习笔记202305学习笔记第二十七天-什么是对象结构 set map之8
前端学习笔记202305学习笔记第二十七天-什么是对象结构 set map之8
45 0
|
前端开发
前端学习笔记202305学习笔记第二十五天-什么是对象结构 set map之4
前端学习笔记202305学习笔记第二十五天-什么是对象结构 set map之4
61 0
|
7月前
|
分布式计算 JavaScript 前端开发
Stream学习笔记(二)map与reduce
Stream学习笔记(二)map与reduce
|
7月前
|
存储 JavaScript
【ES6系列第二篇】适用JS初学者的Set对象和Map对象学习笔记
【ES6系列第二篇】适用JS初学者的Set对象和Map对象学习笔记
52 0
|
前端开发
前端学习笔记202305学习笔记第二十八天-什么是对象结构 set map之13
前端学习笔记202305学习笔记第二十八天-什么是对象结构 set map之13
40 0
前端学习笔记202305学习笔记第二十八天-什么是对象结构 set map之13
|
前端开发
前端学习笔记202306学习笔记第四十二天-Es6-Map的理解1
前端学习笔记202306学习笔记第四十二天-Es6-Map的理解1
55 1
|
前端开发
前端学习笔记202305学习笔记第二十五天-什么是对象结构 set map之5
前端学习笔记202305学习笔记第二十五天-什么是对象结构 set map之5
46 0