2021年大数据常用语言Scala(十八):基础语法学习 Map对象
【摘要】
目录
Map对象
不可变Map
可变Map
Map基本操作
Map对象
Map可以称之为映射。它是由键值对组成的集合。在scala中,Map也分为不可变Map和可变Map。
不可变Map
定义
语法
val/var map = Map(键->值, 键->值,...
目录
Map对象
Map可以称之为映射。它是由键值对组成的集合。在scala中,Map也分为不可变Map和可变Map。
不可变Map
定义
语法
val/var map = Map(键->值, 键->值, 键->值...) // 推荐,可读性更好
val/var map = Map((键, 值), (键, 值), (键, 值), (键, 值)...)
示例
定义一个映射,包含以下学生姓名和年龄数据
"zhangsan", 30
"lisi", 40
获取zhangsan的年龄
参考代码
-
scala> val map = Map("zhangsan"->30, "lisi"->40)
-
map: scala.collection.immutable.Map[String,Int] = Map(zhangsan -> 30, lisi -> 40)
-
-
scala> val map = Map(("zhangsan", 30), ("lisi", 30))
-
map: scala.collection.immutable.Map[String,Int] = Map(zhangsan -> 30, lisi -> 30)
-
-
// 根据key获取value
-
scala> map("zhangsan")
-
res10: Int = 30
可变Map
定义
定义语法与不可变Map一致。但定义可变Map需要手动导入import scala.collection.mutable.Map
示例
定义一个映射,包含以下学生姓名和年龄数据
"zhangsan", 30
"lisi", 40
修改zhangsan的年龄为20
-
scala> val map = Map("zhangsan"->30, "lisi"->40)
-
map: scala.collection.mutable.Map[String,Int] = Map(lisi -> 40, zhangsan -> 30)
-
-
// 修改value
-
scala> map("zhangsan") = 20
Map基本操作
基本操作
- 获取值(map(key))
- 获取所有key(map.keys)
- 获取所有value(map.values)
- 遍历map集合
- getOrElse
- 增加key,value对
- 删除key
示例
定义一个映射,包含以下学生姓名和年龄数据
"zhangsan", 30
"lisi", 40
获取zhangsan的年龄
获取所有的学生姓名
获取所有的学生年龄
打印所有的学生姓名和年龄
获取wangwu的年龄,如果wangwu不存在,则返回-1
新增一个学生:wangwu, 35
将lisi从可变映射中移除
参考代码
-
scala> val map = Map("zhangsan"->30, "lisi"->40)
-
map: scala.collection.mutable.Map[String,Int] = Map(lisi -> 40, zhangsan -> 30)
-
-
// 获取zhagnsan的年龄
-
scala> map("zhangsan")
-
res10: Int = 30
-
-
// 获取所有的学生姓名
-
scala> map.keys
-
res13: Iterable[String] = Set(lisi, zhangsan)
-
-
// 获取所有的学生年龄
-
scala> map.values
-
res14: Iterable[Int] = HashMap(40, 30)
-
-
// 打印所有的学生姓名和年龄
-
scala> for((x,y) <- map) println(s"$x $y")
-
lisi 40
-
zhangsan 30
-
-
// 获取wangwu的年龄,如果wangwu不存在,则返回-1
-
scala> map.getOrElse("wangwu", -1)
-
res17: Int = -1
-
-
// 新增一个学生:wangwu, 35
-
scala> map + ("wangwu"->35) // 要用括号括起来. 因为+可以加多个, 加一个也要括起来
-
res22: scala.collection.mutable.Map[String,Int] = Map(lisi -> 40, zhangsan -> 30, wangwu -> 35)
-
// 一次增加两个
-
scala> map + (("ppp", 10), ("iii", 9)) // 或者这样 map + ("ppp" ->10, "iii" -> 9)
-
res37: scala.collection.mutable.Map[String,Int] = Map(lisi -> 40, zhangsan -> 30, ppp -> 10, iii -> 9)
-
// 将lisi从可变映射中移除
-
scala> map - "lisi"
-
res23: scala.collection.mutable.Map[String,Int] = Map(zhangsan -> 30)
文章来源: lansonli.blog.csdn.net,作者:Lansonli,版权归原作者所有,如需转载,请联系作者。
原文链接:lansonli.blog.csdn.net/article/details/116465600
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)