(一)Map 的定义和创建
Map是一种存储键值对的数据结构,每个键在 Map 中是唯一的。在 Scala 中,我们可以使用多种方式创建 Map。
Map 创建格式:
1.不可变 Map:
scala
val mapName: Map[KeyType, ValueType] = Map(key1 -> value1, key2 -> value2,...)
2.可变 Map(需导入scala.collection.mutable.Map):
scala
val mapName:mutable.Map[KeyType, ValueType] = mutable.Map(key1 -> value2,...)
(二)Map 的常用方法 - 添加元素
对于可变 Map,我们可以使用 += 操作符或者 put 方法来添加键值对。
添加元素到可变 Map 的格式(+= 操作符):
mapName += (key -> value)
添加元素到可变 Map 的格式(put 方法):
mapName.put(key, value)
scala
/*
* 键值对
* key → value 结构
*
* map:用来表示键值对格式。映射。
*
*
*
*
**/
//在每一个scala文件中,它会自动导入一些包!
import scala.collection.mutable
// import scala.collection.immutable.Map
// 默认情况下,不写任何的导入语句和包名,Map是表示不可变的,他不能使用 += 的方式添加新的键值对!
def main(args: Array[String]): Unit = {
//
// val map1 = Map((42 ->"湖北省"),(14 -> "山西省"))
val map1 = mutable.Map((42 ->"湖北省"),(14 -> "山西省"))
// 添加一个元素
map1 += (19 -> "河南省")
println(map1)
}
结果
scala
HashMap(42 -> 湖北省, 19 -> 河南省, 14 -> 山西省)
(三)Map 的常用方法 - 查询元素
我们可以使用 get 方法来查询 Map 中的值,或者直接Map(key)。
查询 Map 元素的格式(get 方法):
val valueOption: Option[ValueType]=mapName.get(key)
scala
// 3. 14对应是哪个省
val ret = map1.get(14) // 如果找到了,就有值,没有找到就是None
if(ret.isDefined){
println(ret.get)
}
结果
scala
山西省
(四)Map 的常用方法 - 删除元素(仅针对可变 Map)
*对于可变 Map,我们可以使用 -= 操作符或者 remove 方法来删除键值对。 *
删除可变 Map 元素的格式(-= 操作符):
mapName -= key
删除可变 Map 元素的格式(remove 方法):
mapName.remove(key)
scala
map1 -= 42
(五)Map 的遍历
使用 for 循环遍历 Map 的格式:
for ((key, value) <- mapName) {
// 操作,如打印 key 和 value
}
使用 foreach 方法遍历 Map 的格式:
mapName.foreach { case (key, value) =>
// 操作,如打印 key 和 value
scala
for((key,value) <- map1){
println(s"${value}身份证的前两位编号是${key}")
}
结果
scala
河南省身份证的前两位编号是19
山西省身份证的前两位编号是14