📅  最后修改于: 2023-12-03 14:47:17.779000             🧑  作者: Mango
Scala中的HashMap是可变映射,允许我们将键和值存储到其中,而且可以在运行时根据需要添加、更新或删除键值对。本文将详细介绍Scala中的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方法提供一个默认值。
我们可以采用循环语句(如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。