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