1.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,...)
package map
/*
* 01--->张同学
* 02--->朱同学
*
* 42 -> 湖北
* 14 -> 山西
*
* 鄂A -> 武汉
* 鄂N -> 潜江
*
* key -> value 结构
*
*
* map: 用来表示建值对格式
*
*
* */
object map01 {
def main(args: Array[String]): Unit = {
val map1 = scala.collection.mutable.Map( (42 -> "湖北省"),(14 -> "山西省"))
println(map1)
}
}
对于可变的Map:我们可直接使用 += 的方式进行添加,但是一般默认情况下是不可变Map,我们可以
package map
/*
* 01--->张
* 02--->朱
*
*
* 42 -> 湖北
* 14 -> 山西
*
* 鄂A -> 武汉
* 鄂N -> 潜江
*
* key -> value 结构
*
*
* map: 用来表示键值对格式
*
*
* */
// 在每一个scala文件中,它都会自动导入一些包!
import scala.collection.mutable.Map
//import scala.collection.immutable.Map
//默认情况下,不写任何的导入语句和包名,Map是表示不可变的,它不能使用 += 的方式来添加新的键值对!
object map01 {
def main(args: Array[String]): Unit = {
//
val map1 = scala.collection.mutable.Map( (42 -> "湖北省"),(14 -> "山西省"))
// 添加一个元素
map1 += ( 19 -> "河南省")
println(map1)
}
}
ps:我们首先创建了一个不可变的 Map,它包含了两个键值对,键是学生姓名(字符串类型),值是成绩(整数类型)。然后我们导入了可变 Map 类,并创建了一个可变的 Map。同学们注意,不可变 Map 创建后不能修改,而可变 Map 可以进行添加、删除等操作。
2.Map 的常用方法
2-1:添加元素
package 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 = scala.collection.mutable.Map( (42 -> "湖北省"),(14 -> "山西省"))
val map1 = mutable.Map( (42 -> "湖北省"),(14 -> "山西省"))
// 1.添加一个元素
// val map2 = map1 + (19 -> "河南省")
map1 += ( 19 -> "河南省")
}
}
2-2:删除元素
package 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 = scala.collection.mutable.Map( (42 -> "湖北省"),(14 -> "山西省"))
val map1 = mutable.Map( (42 -> "湖北省"),(14 -> "山西省"))
// 2.删除,删除根据key值来删除
map1 -= 42
}
}
2-3:查询元素
package 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 = scala.collection.mutable.Map( (42 -> "湖北省"),(14 -> "山西省"))
val map1 = mutable.Map( (42 -> "湖北省"),(14 -> "山西省"))
// 3.查询,14对应是哪个省?
val ret = map1.get(14) //
if(ret.isDefined) {
println(ret.get)
}
}
}
2-4:遍历
package 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 = scala.collection.mutable.Map( (42 -> "湖北省"),(14 -> "山西省"))
val map1 = mutable.Map( (42 -> "湖北省"),(14 -> "山西省")
// 4.for 遍历
for((key , value) <- map1){
println(s"${value}身份证的前两位编号是${key}")
}
}
}