Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。
默认情况下 Scala 使用不可变 Map。如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutable.Map 类
在 Scala 中 你可以同时使用可变与不可变 Map,不可变的直接使用 Map,可变的使用 mutable.Map。
Map常用操作有增加,删除,修改,查询
不可变Map
添加:如果key存在,就是修改
删除。只需要提供key
查询 :get方法,输入key,如果找到,就返回包装数据,如果没有找到,就返回None
直接:map(key名)如果key不存在,就会报错
-
import scala.collection.mutable
-
object Test25 {
-
def main(args: Array[String]): Unit = {
-
// 不可变Map
-
// val stu1:Map[String,Int] = Map("alice" -> 90, "bob" -> 85)
-
//
-
// // 1.添加
-
// val stu_1 = stu1 + ("小花"->110)
-
// println(stu_1)
-
//可变Map
-
val stu2 = mutable.Map("alice" -> 90, "bob" -> 85)
-
// 1.添加
-
stu2 += ("小花" -> 110)
-
stu2.put("小明", 99)
-
// 2.查询
-
// 2.1
-
val rs = stu2.get("小花") //找不到,返回None
-
//他得到是一个包装对象,具体的内容需要再次调用get。rs.get
-
// 2.2
-
val rs1 = stu2("小花") // 找不到,直接报错
-
println(rs.get,rs1)
-
// 3.删除
-
stu2.remove("alice")
-
stu2 -= "bob"
-
// 4. 遍历
-
// 4.1 for 循环
-
for((k,v) <- stu2) {
-
println(s"姓名:${k},分数:${v}")
-
}
-
println("-"*15)
-
// 4.2 foreach
-
stu2.foreach{case (key,value)=>
-
println(s"姓名:${key},分数:${value}")
-
}
-
println(stu2)
-
// val stu2:Map[String,Int] = Map("apple" -> 5,"banana" -> 6,"peach" -> 8)
-
// val stu2_1 = stu2 + ("pear" -> 10)
-
// println(stu2_1)
-
}
-
}