Scala 中的映射(Map)

概念

Map可以称之为映射。它是由键值对组成的集合。在scala中,Map也分为不可变Map和可变Map。

不可变Map

定义

语法
val/var map = Map(->,->,->...)	// 推荐,可读性更好
val/var map = Map((,), (,), (,), (,)...)
代码示例
//定义一个映射,包含学生姓名和年龄数据 zhangsan 18   lisi 20
//方式一
val map = Map("zhangsan"->18, "lisi"->20)
//方式二
val map = Map(("zhangsan", 18), ("lisi", 20))
//获取zhangsan的年龄 根据key获取value
map("zhangsan")

在这里插入图片描述

可变Map

定义语法与不可变Map一致。但定义可变Map需要手动导入import scala.collection.mutable.Map

代码示例
//定义一个映射,包含学生姓名和年龄数据  zhangsan 18 lisi 20
//完整写法
val map: mutable.Map[String, Int] = mutable.Map("zhangsan"->18, "lisi"->20)
//省略写法  mutable 不建议省略 这样能更好区分
val map = mutable.Map("zhangsan"->18, "lisi"->20)
//修改 zhangsan 的年龄为 15
 map("zhangsan") = 15
 //输出修改后的值
 println(map)

在这里插入图片描述

映射的基本操作

基本操作

  • 获取值(map(key))
  • 获取所有key(map.keys
  • 获取所有value(map.values
  • 遍历map集合
  • getOrElse
  • 增加key,value对
  • 删除key

代码示例

//定义一个映射,包含学生姓名和年龄数据  zhangsan 18 lisi 20
 val map = Map("zhangsan"->18, "lisi"->20)
//获取zhangsan的年龄
map("zhangsan")
//获取所有的学生姓名
map.keys
//获取所有的学生年龄
map.values
//打印所有的学生姓名和年龄
for((x,y) <- map) println(s"$x $y")
//获取wangwu的年龄,如果wangwu不存在,则返回-1
map.getOrElse("wangwu", -1)
//新增一个学生:wangwu, 35
 map + "wangwu"->35
//将lisi从可变映射中移除
map - "lisi"
//打印map
println(map)

在这里插入图片描述

发布了88 篇原创文章 · 获赞 114 · 访问量 2996

猜你喜欢

转载自blog.csdn.net/hongchenshijie/article/details/104021830