1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 大数据常用语言Scala(十八):基础语法学习 Map对象

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

时间:2024-01-09 22:19:17

相关推荐

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

目录

Map对象

不可变Map

可变Map

Map基本操作

Map对象

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

不可变Map

定义

语法

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

val/varmap =Map((键,值),(键,值),(键,值),(键,值)...)

示例

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

"zhangsan",30

"lisi",40

获取zhangsan的年龄

参考代码

scala>valmap =Map("zhangsan"->30,"lisi"->40)map:scala.collection.immutable.Map[String,Int]=Map(zhangsan ->30,lisi ->40)scala>valmap =Map(("zhangsan",30),("lisi",30))map:scala.collection.immutable.Map[String,Int]=Map(zhangsan ->30,lisi ->30)// 根据key获取valuescala>map("zhangsan")res10:Int=30

可变Map

定义

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

示例

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

"zhangsan",30

"lisi",40

修改zhangsan的年龄为20

scala>valmap =Map("zhangsan"->30,"lisi"->40)map:scala.collection.mutable.Map[String,Int]=Map(lisi ->40,zhangsan ->30)// 修改valuescala>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>valmap =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.keysres13:Iterable[String]=Set(lisi,zhangsan)// 获取所有的学生年龄scala>map.valuesres14:Iterable[Int]=HashMap(40,30)// 打印所有的学生姓名和年龄scala>for((x,y)<-map)println(s"$x$y")lisi 40zhangsan 30// 获取wangwu的年龄,如果wangwu不存在,则返回-1scala>map.getOrElse("wangwu",-1)res17:Int=-1// 新增一个学生:wangwu, 35scala>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)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。