在我们生活中,常常需要将一些相关的信息关联起来存储和查询,比如学 生姓名和对应的学号、城市名称和其所在的省份等。在编程中,Scala 为我们提供了一种非常实用的数据结构来处理这种关联关系,那就是 Map。
1:Map 的定义和创建
假设我们要创建一个存储学生姓名和成绩的信息表,应该怎么用 Map 实现 呢?
Map是一种存储键值对的数据结构,每个键在 Map 中是唯一的。在 Scala 中,我们可以使用多种方式创建 Map。
2:Map 创建格式:
1.不可变 Map:val mapName: Map[KeyType, ValueType] = Map(key1 -> value1, key2 -> value2,...)
2.可变 Map(需导入scala.collection.mutable.Map):val mapName:
mutable.Map(Key)Type, ValueType = mutable.Map(key1 -> value2,...)
3:Map的常用方法
1:添加元素: 对于可变 Map,我们可以使用 += 操作符或者 put 方法来添加键值对。
添加元素到可变 Map 的格式(+= 操作符):mapName += (key -> value)
添加元素到可变 Map 的格式(put 方法):mapName.put(key, value)
2:删除元素: 与添加元素同理: 使用map1 -= ("*" -> *** )
3:查询元素: 我们可以使用 get 方法来查询 Map 中的值,或者直接Map(key)。
查询 Map 元素的格式(get 方法):
val valueOption: Option[ValueType] = mapName.get(key)
4:map的遍历(通过for循环将map中的元素都输出一遍)
for((a,b) <- map1){
println(s"{b}")
} map1.foreach({
case (key,value) => {
println(s"{value}")
}
})
package txy
object Demo21 {
def main(args: Array[String]): Unit = {
//Map:映射
//键值对,键不能有相同的
//(key,value)
val map1 = scala.collection.mutable.Map(("沈冲" -> "狗"), ("涂新宇" -> "猪"), ("蔡徐坤" -> "鸡"))
//与set相同,默认是无法更改的Map()->scala.collection.immutable.Map()
println(map1)
map1 += ("马嘉琪" -> "马")
println(map1)
//1:添加
map1 += ("蔡徐坤" -> "鸡")
//2:删除
val key = "沈冲"
val ret = map1.get(key)
if(ret.isDefined){
println(s"${key}存在于map1中")
}else{
println("s{key}不存在于map1中")
}
println(ret)
//3:查询元素
for((a,b) <- map1){
println(s"${a},${b}")
}
map1.foreach({
case (key,value) => {
println(s"${key},${value}")
}
})
//4:遍历map:for 循环输出所有
}
}
输出结果