内容:
1.Map的定义和创建;
2。添加元素;
3.查询元素;
4.删除元素;
5.遍历。
1.Map的定义和创建
假设我们要创建一个存储学生姓名和成绩的信息表,应该怎么用 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
val studentScores1: Map[String, Int] = Map("Alice" -> 90, "Bob" -> 85)
// 创建一个可变 Map
import scala.collection.mutable.Map
val studentScores2: mutable.Map[String, Int] = mutable.Map("Charlie" -> 78)
这里我们首先创建了一个不可变的 Map,它包含了两个键值对,键是学生姓名(字符串类型),值是成绩(整数类型)。然后我们导入了可变 Map 类,并创建了一个可变的 Map。同学们注意,不可变 Map 创建后不能修改,而可变 Map 可以进行添加、删除等操作。
2. Map 的常用方法 - 添加元素
对于可变Map
如果我们要给刚才创建的存储学生成绩的可变 Map 中添加一个新学生的成绩,怎么做呢?
对于可变 Map,我们可以使用 += 操作符或者 put 方法来添加键值对。
添加元素到可变 Map 的格式(+= 操作符):mapName += (key -> value)
添加元素到可变 Map 的格式(put 方法):mapName.put(key, value)
studentScores2 += ("David" -> 82)
studentScores2.put("Eve", 92)
println(studentScores2)
这里我们使用 += 操作符和 put 方法分别向可变 Map 中添加了新的学生成绩信息,然后打印出 Map,可以看到新的键值对已经添加进去了。
3.Map 的常用方法 - 查询元素
如果我们想知道某个学生的成绩,比如查询“Alice”的成绩,在 Map 中怎么操作 呢?
我们可以使用 get 方法来查询 Map 中的值,或者直接Map(key)。
查询 Map 元素的格式(get 方法):
val valueOption: Option[ValueType] = mapName.get(key)
val aliceScore: Option[Int] = studentScores1.get("Alice")
println(aliceScore)****
这里使用 get 方法查询“Alice”的成绩,返回值是一个 Option 类型,它 可能包含值(如果键存在)或者为 None(如果键不存在)。这是 Scala 中处理 可能不存在值的一种安全方式。
4.Map 的常用方法 - 删除元素(仅针对可变 Map)
如果某个学生转学了,我们要从存储学生成绩的可变 Map 中删除他的信息, 怎么办呢?**
对于可变 Map,我们可以使用 -= 操作符或者 remove 方法来删除键值对。
删除可变 Map 元素的格式(-= 操作符): mapName -= key
删除可变 Map 元素的格式(remove 方法): mapName.remove(key)
studentScores2 -= "Charlie"
studentScores2.remove("David")
println(studentScores2)
这里我们使用 -= 操作符和 remove 方法分别从可变 Map 中删除了指定的键 值对,并打印出结果,可以看到相应的学生信息已经被删除。
5.Map 的遍历
如果我们想查看所有学生的成绩信息,也就是遍历 Map,怎么做呢?
我们可以使用 for 循环或者 foreach 方法来遍历 Map。
使用 for 循环遍历 Map 的格式:
for ((key, value) <- mapName) {
// 操作,如打印 key 和 value
}
使用 foreach 方法遍历 Map 的格式:
mapName.foreach { case (key, value) =>
// 操作,如打印 key 和 value
}
使用 for 循环遍历
for ((name, score) <- studentScores1) { println(s"$name: $score") }
使用 foreach 方法遍历
studentScores2.foreach { case (name, score) => println(s"$name: $score") }
这里展示了两种遍历 Map 的方式,通过键值对的形式打印出每个学生的姓名 和成绩。