位置:首页 > Scala > Map映射详解:概念、用法与实际应用场景

Map映射详解:概念、用法与实际应用场景

时间:2026-08-15  |  作者:清风无痕  |  阅读:0

(一)Map的定义和创建

Map 创建格式:

Map映射
            <!----></a> <!---->

1. 不可变 Map

不可变 Map 的写法是这样的:

val mapName: Map[KeyType, ValueType] = Map(key1 -> value1, key2 -> value2, ...)

2. 可变 Map

可变 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 中的键不能重复。

如果出现重复键,例如上面的 bob,则只保留一个。

(二)Map 的常用方法

常见操作包括

  • 添加元素
  • 删除元素
  • 查询元素
  • 遍历输出
package map
object map01 {
  def main(args: Array[String]): Unit = {
    val map1 = scala.collection.mutable.Map(("alice" -> 90), ("bob" -> 80), ("bob" -> 100))
    // bob这个键有重复,只保留一个
    println(map1)
    // 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} 不存在")
    }
    println(ret)
    // 4. for 循环输出所有
    for ((a, b) <- map1) {
      println(s"${a}, ${b}")
    }
    map1.foreach {
      case (key, value) => {
        println(s"${key}, ${value}")
      }
    }
  }
}

方法说明

  • 添加:map1 += ("judy" -> 90)
  • 删除:map1 -= "bob"
  • 查询:map1.get(key)
  • 遍历:可以使用 for 循环,也可以使用 foreach

查询结果使用 get 返回后,需要先判断是否存在。

如果 ret.isDefined 为 true,则说明该 key 存在。

这时可以通过 ret.get 取到对应的值。

重点:Map 是键值对结构,键不能有相同的

学习时可重点掌握创建、增删、查询和遍历这几类常用操作。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多