理论教育 映射(Map)的理解与应用

映射(Map)的理解与应用

时间:2023-06-14 理论教育 版权反馈
【摘要】:Map 是一系列键值对的集合。在一个Map 中,键是唯一的,但值可以不唯一,任何值可以根据它的键进行检索。Map 同样分为不可变以及可变的,默认是不可变,如果使用可变集合,需要显式的引入import scala.collection.mutable.Map 类。scala> map2.keysres129: Iterable[String] = Set3. values 函数values 函数返回一个Map 所有的值。scala> map1.contains("3")res137: Boolean = false8. updated 函数Updated 函数用于更新Map 的值,如果不存在对应的键值对等同于新增操作。

映射(Map)的理解与应用

Map 是一系列键值对的集合。在一个Map 中,键是唯一的,但值可以不唯一,任何值可以根据它的键进行检索。Map 同样分为不可变以及可变的,默认是不可变,如果使用可变集合,需要显式的引入import scala.collection.mutable.Map 类。

一、Map 的声明

Map 声明的语法格式:Map(数据元素, 数据元素)

例1. 创建一个键值类型都为字符串的Map

scala> val map1 = Map("1"->"one", "2"->"two")

map1: scala.collection.immutable.Map[String,String] = Map(1 -> one, 2 -> two)

例2. 创建一个空Map

scala> var map2 = Map()

map2: scala.collection.immutable.Map[Nothing,Nothing] = Map()

二、Map 的基本操作

1.向Map 中添加元素

使用+即可向Map 中添加元素,并返回一个新的Map

scala> val map2 = map1 + ("3" -> "three")

map2: scala.collection.immutable.Map[String,String] = Map(1 -> one, 2 -> two, 3

-> three)

2. keys 函数

keys 函数返回一个Map 所有的键。

scala> map2.keys

res129: Iterable[String] = Set(1, 2, 3)

3. values 函数

values 函数返回一个Map 所有的值。

scala> map2.values

res130: Iterable[String] = MapLike.DefaultValuesIterable(one, two, three)

4. isEmpty 函数

isEmpty 函数判断一个Map 是否为空

scala> map2.isEmpty

res131: Boolean = false

5. Map 合并

使用++运算来连接两个Map,Map 合并时会移除重复的key。

scala> val map3 = Map("1"->"one", "2"->"two", "4" -> "four")

map3: scala.collection.immutable.Map[String,String] = Map(1 -> one, 2 -> two, 4

-> four)

scala> map3 ++ map2

res132: scala.collection.immutable.Map[String,String] = Map(1 -> one, 2 -> two,(www.daowen.com)

4 -> four, 3 -> three)

6. Map 元素访问

Map 元素的访问可以通过get 函数或者类似元素方式访问,但如果访问的键不存在的话,前者不会报错。

scala> map1("2")

res133: String = two

scala> map1.get("2")

res134: Option[String] = Some(two)

scala> map1("3")

java.util.NoSuchElementException: key not found: 3

at scala.collection.immutable.Map$Map2.apply(Map.scala:129)

... 27 elided

scala> map1.get("3")

res136: Option[String] = None

7. contains 函数

contains 函数判断Map 中是否存在指定的Key。

scala> map1.contains("3")

res137: Boolean = false

8. updated 函数

Updated 函数用于更新Map 的值,如果不存在对应的键值对等同于新增操作。

scala> map1.updated("1", "1")

res140: scala.collection.immutable.Map[String,String] = Map(1 -> 1, 2 -> two)

scala> map1.updated("3", "3")

res141: scala.collection.immutable.Map[String,String] = Map(1 -> one, 2 -> two,

3 -> 3)

9. put,remove 和clear

put,remove 和clear 用于读可变Map 的操作,put 是向Map 中添加元素,remove通过键删除一个元素,clear 用于清空Map。

scala> var map4 = scala.collection.mutable.Map("1"->1,"2"->2)

map4: scala.collection.mutable.Map[String,Int] = Map(2 -> 2, 1 -> 1)

scala> map4.put("3", 3)

res145: Option[Int] = None

scala> map4.remove("1")

res146: Option[Int] = Some(1)

scala> map4.clear()

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈