Map映射

60 阅读1分钟

一.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,...)

二.Map 的常用方法 - 添加元素 - 查询元素 -删除元素

  1. 对于可变 Map,我们可以使用 += 操作符或者 put 方法来添加键值对。添加元素到可变 Map 的格式(+= 操作符):mapName += (key -> value) 添加元素到可变 Map 的格式(put 方法):mapName.put(key, value)
  2. 我们可以使用 get 方法来查询 Map 中的值,或者直接Map(key)。查询 Map 元素的格式(get 方法):val valueOption: Option[ValueType] = mapName.get(key)
  3. 对于可变 Map,我们可以使用 -= 操作符或者 remove 方法来删除键值对。 删除可变 Map 元素的格式(-= 操作符): mapName -= key 删除可变 Map 元素的格式(remove 方法):mapName.remove(key)
package map
/*
Map:映射
键值对,键不能有相同的!
(key,value)

常见的操作
1.添加
2.删除
 */
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 的遍历

我们可以使用 for 循环或者 foreach 方法来遍历 Map。

package map
/*
Map:映射
键值对,键不能有相同的!
(key,value)

常见的操作
1.添加
2.删除
 */
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} 不存在")
    }

    //4.for循环输出所有
    for((a,b) <- map1){
      println(s"${a},${b}")
    }

    map1.foreach({
      case (key,value) => {
        println(s"${key},${value}")
      }
    })
    println(ret)
  }
}