Map映射

24 阅读1分钟

一.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}")
    }
  }
}