前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >2021年大数据常用语言Scala(十八):基础语法学习 Map对象

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

作者头像
Lansonli
发布2021-10-11 10:25:24
发布2021-10-11 10:25:24
48000
代码可运行
举报
文章被收录于专栏:Lansonli技术博客Lansonli技术博客
运行总次数:0
代码可运行

Map对象

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

不可变Map

定义

语法

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

示例

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

"zhangsan", 30 "lisi", 40

获取zhangsan的年龄

参考代码

代码语言:javascript
代码运行次数:0
运行
复制
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

代码语言:javascript
代码运行次数:0
运行
复制
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从可变映射中移除

参考代码

代码语言:javascript
代码运行次数:0
运行
复制
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)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/05/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Map对象
    • 不可变Map
    • 可变Map
    • Map基本操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档