博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scala中的Map
阅读量:6218 次
发布时间:2019-06-21

本文共 2071 字,大约阅读时间需要 6 分钟。

映射

映射是对偶的集合。

声明映射

映射是对偶的集合。

a.声明映射

b.映射中的键值对称作对偶,用( , )表示

c.当映射中不存在key时,取值会报错,解决方案是使用 contains方法,或者getOrElse方法

 默认使用的映射中的value是不可修改的,位于scala.collection.immutable包中。如果要修改,必须使用位于scala.collection.mutable包中的Map类型

如果要迭代每一个对偶,还是使用for循环

看代码:

1 object TestScalaMap { 2   def main(args: Array[String]): Unit = { 3     //定义Map 4     var map1 = Map[String,Int]("zhangsan" -> 15000,"lisi"->16000,"wangwu"->9000 ) 5     //定义Map可以用这种混合的方式 6     var map2 = Map[String,Int](("zhangsan",15000),("lisi"->16000),"wangwu"->9000) 7      8     for(i <- map2){ 9       println(i)10     }11     /*12      * 输出结果:13      * (zhangsan,15000)14      * (lisi,16000)15      * (wangwu,9000)16      */17     18     //增强代码的健壮性19     if(map1.contains("zhaoliu"))20       println(map1("zhaoliu"))//没有if判断的话就会抛出异常21     //scala写法  22     println(map1.getOrElse("zhaoliu","没有zhaoliu"))//输出:没有zhaoliu23     24     for(i <- map2.keys){
//.keys 取出map对应的key的集合25 println(map2(i))26 }27 /*28 * 输出29 * 1500030 * 1600031 * 900032 */33 34 //循环遍历map35 for((k,v) <- map2){36 println(k + "-->" + v)37 }38 /*39 * 输出:40 * zhangsan-->1500041 * lisi-->1600042 * wangwu-->900043 */44 45 //k,v互换 还是要通过使用操作集合生成集合的yield46 var map3 = for((k,v) <- map2)yield((v,k))47 println(map3) //输出:Map(15000 -> zhangsan, 16000 -> lisi, 9000 -> wangwu)48 49 //更改map中键的值50 map1 += ("zhangsan"->16000)51 println(map1)//输出: Map(zhangsan -> 16000, lisi -> 16000, wangwu -> 9000)52 53 //声明一个可变的Map mutable "可变的" immutable "不可变的"54 var map4 = scala.collection.mutable.Map[String,Int]("zhangsanfeng" ->15000,"zhangwuji" -> 6000)55 map4("zhangsanfeng") = 19000 56 println(map4)//输出 Map(zhangsanfeng -> 19000, zhangwuji -> 6000)57 58 map4 -= ("zhangsanfeng")59 println(map4)//输出 Map(zhangwuji -> 6000)60 61 map4.remove("zhangsanfeng")62 println(map4)63 64 //map4 ++= map3 //可以用"++="向map中追加另外一个map中的值65 //但是此处会报错,因为map4是[String,Int] 而map3是[Int,String]66 67 }68 }

 

转载地址:http://hroja.baihongyu.com/

你可能感兴趣的文章
工信部:2019年中国云计算产业目标4300亿
查看>>
光伏巨头赛维重整终遭强裁,债转股方案疑虑尚存
查看>>
智能家居革命 兼容HomeKit的设备登陆美国
查看>>
MIT推进诊断老年痴呆的认知计算,解决机器学习的黑箱问题
查看>>
《领域特定语言》一3.3 文法、语法和语义
查看>>
2017视频会议的三大重要应用方向
查看>>
到2020年智慧城市建设水平全国领先
查看>>
Red Hat财报:OpenStack比重越来越大
查看>>
呼和浩特市政务云计算中心
查看>>
外媒解读乌克兰电网遭遇黑客事故
查看>>
从Tlink看企业接入物联网的紧迫性
查看>>
提升服务器性能+降低连接成本 25GbE是新选择
查看>>
趋利避害:将影子IT转变为下一代IT
查看>>
当前超融合市场概览
查看>>
电信联通联合发布大数据服务 强调安全将纳入征信系统
查看>>
智能家居市场风起云涌
查看>>
人工智能如此挑战人类,都是依靠大数据!
查看>>
大数据科学家可不是那么好当的,五项专业特质你有吗?
查看>>
SpringBoot开发案例之整合日志管理
查看>>
数据中心托管行业中高端市场的问题
查看>>