📜  Scala集合-HashMap(1)

📅  最后修改于: 2023-12-03 14:47:17.779000             🧑  作者: Mango

Scala集合:HashMap

Scala中的HashMap是可变映射,允许我们将键和值存储到其中,而且可以在运行时根据需要添加、更新或删除键值对。本文将详细介绍Scala中的HashMap及其用法。

创建HashMap

在Scala中,我们可以使用Map对象的apply方法创建HashMap:

import scala.collection.mutable.HashMap

// 创建一个空的HashMap
val emptyMap: HashMap[String, Int] = HashMap()

// 创建一个有初始键值对的HashMap
val hashMap: HashMap[String, Int] = HashMap("alice" -> 25, "bob" -> 30, "charlie" -> 35)

在这个例子中,我们创建了两个String到Int的HashMap,一个为空,一个有三个初始键值对。

添加和更新键值对

要将键值对添加到HashMap中,请使用+=或++=操作符:

import scala.collection.mutable.HashMap

val hashMap: HashMap[String, String] = HashMap("a" -> "apple", "b" -> "banana")

// 添加单个键值对
hashMap += ("c" -> "cherry")

// 添加多个键值对
hashMap ++= Map("d" -> "dates", "e" -> "elderberry")

// 更新值
hashMap("a") = "apricot"

// 打印HashMap
println(hashMap) // HashMap(a -> apricot, b -> banana, c -> cherry, d -> dates, e -> elderberry)

在这个例子中,我们创建了一个String到String的HashMap。我们使用+=和++=添加了多个键值对,同时还通过为键赋一个新值来更新了键值对。

删除键值对

有几种方法可以从HashMap中删除键值对。其中一种方法是使用-=操作符:

import scala.collection.mutable.HashMap

val hashMap: HashMap[String, String] = HashMap("a" -> "apple", "b" -> "banana")

// 删除单个键值对
hashMap -= "a"

// 删除多个键值对
hashMap --= Seq("b", "c", "d")

// 打印HashMap
println(hashMap) // HashMap()

在这个例子中,我们创建了一个String到String的HashMap,并使用-=和--=操作符删除了键值对。

检索值

要检索HashMap中的值,请使用()操作符并传递一个键:

import scala.collection.mutable.HashMap

val hashMap: HashMap[String, String] = HashMap("a" -> "apple", "b" -> "banana")

// 检索值
val a = hashMap("a")
val c = hashMap.getOrElse("c", "no value")

// 打印结果
println(a) // apple
println(c) // no value

在这个例子中,我们创建了一个String到String的HashMap,并使用()操作符从中检索了值。如果键不存在,我们还可以使用getOrElse方法提供一个默认值。

遍历HashMap

我们可以采用循环语句(如for循环)遍历HashMap:

import scala.collection.mutable.HashMap

val hashMap: HashMap[String, String] = HashMap("a" -> "apple", "b" -> "banana")

// 遍历HashMap
for ((k, v) <- hashMap) {
  println(s"Key: $k, Value: $v")
}

在这个例子中,我们创建了一个String到String的HashMap,并使用for循环遍历了它。我们还使用字符串插值语法打印了每个键和值。

总结

Scala中的HashMap是一种可变映射,可以在运行时添加、更新和删除键值对。我们可以使用+=和++=操作符添加键值对,使用-=和--=操作符删除键值对,使用()操作符和getOrElse方法检索值,并使用循环语句遍历HashMap。