(一)Map 的定义和创建
Map是一种存储键值对的数据结构,每个键在 Map 中是唯一的。在 Scala 中,我们可以使用多种方式创建 Map。
Map 创建格式:
1.不可变 Map:val mapName: Map[KeyType, ValueType] = Map(key1 -> value1, key2 -> value2,...)
2.可变 Map(需导入scala.collection.mutable.Map):val mapName:
mutable.Map[KeyType, ValueType] = mutable.Map(key1 -> value2,...)
package map
/*
Map: 映射
* 键值对,键不能有相同的!
* (key,value)
*
* 鄂 → 湖北省
* 湘 → 湖南省
* 赣 → 江西省
* 01 → xxx
* 02 → yyy
*
*/
object map01 {
def main(args: Array[String]): Unit = {
val map1 = Map( ("alice" -> 90), ("bob" -> 80), ("bob" -> 100) )
// bob这个键有重复,只保留一个
println(map1)
}
}
(二)Map 的常用方法 - 添加元素
对于可变 Map,我们可以使用 += 操作符或者 put 方法来添加键值对。
添加元素到可变 Map 的格式(+= 操作符):mapName += (key -> value)
添加元素到可变 Map 的格式(put 方法):mapName.put(key, value)
(三)Map 的常用方法 - 查询元素
可以使用 get 方法来查询 Map 中的值,或者直接Map(key)。
查询 Map 元素的格式(get 方法):
val valueOption: Option[ValueType] = mapName.get(key)
(四)Map 的常用方法 - 删除元素(仅针对可变 Map)
对于可变 Map,我们可以使用 -= 操作符或者 remove 方法来删除键值对。
删除可变 Map 元素的格式(-= 操作符): mapName -= key
删除可变 Map 元素的格式(remove 方法): mapName.remove(key)
package map
/*
常见操作
* 1. 添加
* 2. 删除
* 3. 查询元素
*/
object map02 {
def main(args: Array[String]): Unit = {
val map1 = scala.collection.mutable.Map( ("alice" -> 90), ("bob" -> 80), ("bob" -> 100) )
// bob这个键有重复,只保留一个
// 1. 添加
// map1 += ("judy" -> 90)
// 2. 删除
// map1 -= "bob"
// 3. 查询元素
val key = "alice"
val ret = map1.get(key)
if(ret.isDefined){
println(s"${key}对应的信息:${ret.get}")
} else {
println(s"${key}不存在")
}
// 4. for循环输出所有
for((a,b) <- map1){
println(s"${a}, ${b}")
}
map1.foreach{
case (key,value) => {
println(s"${key}, ${value}")
}
}
}