(一)、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,...)
/**
*
* 键值对
* key → value 结构
*
* map: 用来表示键值对格式。映射。
*/
//在每一个scala文件中,它都会自动导入一些包!
import scala.collection.mutable
//import scala.collection.immutable.Map
//默认情况下,不写任何的导入语句和包名,Map是表示不可变的,它不能使用 += 的方式添加新的键值对!
object map01 {
def main(args: Array[String]): Unit = {
//val map1 = Map((42 -> "湖北省"),(14 -> "山西省"))
val map1 = mutable.Map((42 -> "湖北省"),(14 -> "山西省"))
//添加一个元素
map1 += (19 -> "河南省")
println(map1)
}
}
(二)、Map的常用方法
1.添加键值对 2.删除 3.查询:根据key去找value 4.遍历
/**
*
* 键值对
* key → value 结构
*
* map: 用来表示键值对格式。映射。
*
* 常见操作
* 1.添加键值对
* 2.删除
* 3.查询:根据key去找value
* 4.遍历
*/
import scala.collection.mutable
//import scala.collection.immutable.Map
//默认情况下,不写任何的导入语句和包名,Map是表示不可变的,它不能使用 += 的方式添加新的键值对!
object map02 {
def main(args: Array[String]): Unit = {
//val map1 = Map((42 -> "湖北省"),(14 -> "山西省"))
val map1 = mutable.Map((42 -> "湖北省"),(14 -> "山西省"))
//1.添加一个元素
//val map2 = map1 + (19 -> "河南省")
map1 += (19 -> "河南省")
//2.删除。删除根据key值来删除
map1 -= 42
//3. 14对应是哪个省?
val ret = map1.get(14)//如果找到了,就有值;没有找到就是None
if (ret.isDefined){
println(ret.get)
}
println(map1)
//4.for 遍历
for ((key,value) <- map1){
println(s"${value}身份证的前两位编号是${key}")
}
}
}