一.Map 的定义和创建
Map是一种存储键值对的数据结构,每个键在 Map 中是唯一的
package Map
object map01 {
def main(args: Array[String]): Unit = {
val map1 = Map("alice"->90, "bob"->80, "bob"->100)
println(map1)
}
}
二.Map 的常用方法
- 1.添加元素:对于可变 Map,我们可以使用 += 操作符或者 put 方法来添加键值对;对于不可变 Map,由于其不可修改的特性,我们需要创建一个新的 Map 来包 含新的元素。
- 2.删除元素:对于可变 Map,我们可以使用 -= 操作符或者 remove 方法来删除键值对
- 3.查询元素:使用 get 方法来查询 Map 中的值,或者直接Map(key)
package Map
object map01 {
def main(args: Array[String]): Unit = {
val map1 = scala.collection.mutable.Map("alice"->90, "bob"->80, "bob"->100)
//bob这个键有重复,只能留一个
//1.添加
map1 += ("juddy"->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}不存在")
}
println(ret)
}
三.Map 的遍历
1.使用 for 循环遍历 Map 的格式 2.使用 foreach 方法遍历 Map 的格式
// 包名改为小写(符合 Scala 规范)
package Map
object map01 {
def main(args: Array[String]): Unit = {
// 可变 Map(键唯一,bob 会被最后一个值 100 覆盖)
val map1 = scala.collection.mutable.Map("alice"->90, "bob"->80, "bob"->100)
println("初始 Map(bob 去重后):" + map1) // 输出:Map(alice -> 90, bob -> 100)
// 1. 添加键值对(两种写法都可以)
map1 += ("juddy"->90) // 单个添加
// map1 ++= Map("tom"->85, "lily"->95) // 批量添加
// 2. 删除键(删除 bob 后,Map 中不再有 bob)
map1 -= "bob"
println("删除 bob 后:" + map1) // 输出:Map(alice -> 90, juddy -> 90)
// 3. 查询元素(推荐用 get 避免空指针,或直接用 map1(key) 但不存在会抛异常)
val key = "alice"
val ret = map1.get(key)
if (ret.isDefined) {
println(s"${key} 对应的值是:${ret.get}") // 输出:alice 对应的值是:90
} else {
println(s"${key} 不存在")
}
// 4. 遍历 Map(两种常用方式)
println("\n=== for 循环遍历 ===")
// 修正:补充缺失的 ),循环语法正确
for ((name, score) <- map1) {
println(s"${name} : ${score}")
}
println("\n=== foreach 遍历(模式匹配)===")
map1.foreach { // 大括号前的括号可省略(Scala 语法糖)
case (name, score) => println(s"${name} , ${score}")
}
}
}