2021年大数据常用语言Scala(十八):基础语法学习 Map对象

举报
Lansonli 发表于 2021/09/29 01:07:17 2021/09/29
【摘要】 目录 Map对象 不可变Map 可变Map Map基本操作 Map对象 Map可以称之为映射。它是由键值对组成的集合。在scala中,Map也分为不可变Map和可变Map。   不可变Map 定义 语法 val/var map = Map(键->值, 键->值,...

目录

Map对象

不可变Map

可变Map

Map基本操作


Map对象

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

 

不可变Map

定义

语法

val/var map = Map(键->值, 键->值, 键->值...) // 推荐,可读性更好
val/var map = Map((键, 值), (键, 值), (键, 值), (键, 值)...)

 

示例

定义一个映射,包含以下学生姓名和年龄数据

"zhangsan", 30
"lisi", 40

获取zhangsan的年龄

 

参考代码


  
  1. scala> val map = Map("zhangsan"->30"lisi"->40)
  2. map: scala.collection.immutable.Map[String,Int] = Map(zhangsan -> 30, lisi -> 40)
  3. scala> val map = Map(("zhangsan"30), ("lisi"30))
  4. map: scala.collection.immutable.Map[String,Int] = Map(zhangsan -> 30, lisi -> 30)
  5. // 根据key获取value
  6. scala> map("zhangsan")
  7. res10: Int = 30

 

可变Map

定义

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

 

示例

定义一个映射,包含以下学生姓名和年龄数据

"zhangsan", 30
"lisi", 40

修改zhangsan的年龄为20

 


  
  1. scala> val map = Map("zhangsan"->30"lisi"->40)
  2. map: scala.collection.mutable.Map[String,Int] = Map(lisi -> 40, zhangsan -> 30)
  3. // 修改value
  4. 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从可变映射中移除

 

参考代码


  
  1. scala> val map = Map("zhangsan"->30"lisi"->40)
  2. map: scala.collection.mutable.Map[String,Int] = Map(lisi -> 40, zhangsan -> 30)
  3. // 获取zhagnsan的年龄
  4. scala> map("zhangsan")
  5. res10: Int = 30
  6. // 获取所有的学生姓名
  7. scala> map.keys
  8. res13: Iterable[String] = Set(lisi, zhangsan)
  9. // 获取所有的学生年龄
  10. scala> map.values
  11. res14: Iterable[Int] = HashMap(4030)
  12. // 打印所有的学生姓名和年龄
  13. scala> for((x,y) <- map) println(s"$x $y")
  14. lisi 40
  15. zhangsan 30
  16. // 获取wangwu的年龄,如果wangwu不存在,则返回-1
  17. scala> map.getOrElse("wangwu"-1)
  18. res17: Int = -1
  19. // 新增一个学生:wangwu, 35
  20. scala> map + ("wangwu"->35// 要用括号括起来. 因为+可以加多个, 加一个也要括起来
  21. res22: scala.collection.mutable.Map[String,Int] = Map(lisi -> 40, zhangsan -> 30, wangwu -> 35)
  22. // 一次增加两个
  23. scala> map + (("ppp"10), ("iii"9)) // 或者这样  map + ("ppp" ->10, "iii" -> 9)
  24. res37: scala.collection.mutable.Map[String,Int] = Map(lisi -> 40, zhangsan -> 30, ppp -> 10, iii -> 9)
  25. // 将lisi从可变映射中移除
  26. scala> map - "lisi"
  27. 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。