目录
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)