(一) 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:
package map
/*
* 01--->胡同学
* 02--->王同学
*
*
*
* 42 → 湖北省
* 14 → 山西省
*
* 鄂A → 武汉
* 鄂N → 潜江
*
* 建值对
* key → value 结构
*
* map:用来表示建值对格式。映射。
*
* */
//在每一个scala文件中,它都会自动导入一些包!
//import scala.collection.mutable.Map
//import scala.collection.immutable.Map
//默认情况下,不写任何的导入语句和包名,Map是表示不可变的,它不能使用 += 的方式添加新的建值对!
import scala.collection.mutable
object mao01 {
def main(args: Array[String]): Unit = {
//
//val map1=Map((42 ->"湖北省"),(14 -> "山西省"))
val map1= mutable.Map((42 -> "湖北省"),(14 -> "山西省"))
//添加一个元素
map1 += (19 -> "河南省")
println(map1)
}
}
常规操作
- 1.添加建值对
- 2.删除
- 3.查询:根据key去找value
- 4.遍历
package map
/*
*常规操作
* 1.添加建值对
* 2.删除
* 3.查询:根据key去找value
* 4.遍历
*
*
*
* */
//import scala.collection.immutable.Map
//默认情况下,不写任何的导入语句和包名,Map是表示不可变的,它不能使用 += 的方式添加新的建值对!
import scala.collection.mutable
object mao02 {
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}")
}
}
}