Scala中的Map

简介:

映射

映射是对偶的集合。

声明映射

映射是对偶的集合。

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"))//输出:没有zhaoliu
23     
24     for(i <- map2.keys){//.keys 取出map对应的key的集合
25       println(map2(i))
26     }
27     /*
28      * 输出
29      * 15000
30      * 16000
31      * 9000
32      */
33     
34     //循环遍历map
35     for((k,v) <- map2){
36       println(k + "-->" + v)
37     }
38     /*
39      * 输出:
40      * zhangsan-->15000
41      * lisi-->16000
42      * wangwu-->9000
43      */
44     
45     //k,v互换 还是要通过使用操作集合生成集合的yield
46     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 }
复制代码

 


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/5645378.html,如需转载请自行联系原作者

相关文章
|
存储 Scala
Scala的map实现key和value排序及各种排序比较等知识讨论
Scala的map实现key和value排序及各种排序比较等知识讨论
250 0
Scala的map实现key和value排序及各种排序比较等知识讨论
|
Scala
Scala常规操作之数组、List、Tuple、Set、Map
Scala常规操作之数组、List、Tuple、Set、Map
178 0
|
分布式计算 Scala Spark
Scala入门到精通——第四节 Set、Map、Tuple、队列操作实战
本节主要内容 mutable、immutable集合 Set操作实战 Map操作实战 Tuple操作实战 队列操作实战 栈操作实战 mutable、immutable集合 以下内容来源于scala官方文档: http://www.scala-lang.org/docu/files/collections-api/collections.html Scala co
5328 0
|
Scala
scala 两个Map 集合合并
//参考《快学scala》 集合操作 foldLeft page:180 package alogrithnm import scala.
1555 0
|
分布式计算 Java Scala
Java,Pyhon,Scala比较(一)map,reduce
使用map,reduce函数,将字符串数组[‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’]转化为数字123456789.
968 0
|
Java Scala 关系型数据库
[Scala]Scala学习笔记三 Map与Tuple
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/76130839 1.
989 0
|
Scala C# .NET
scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例
package yjmyzz import java.io.PrintWriter import java.util.Date import scala.io.Source object ScalaApp02 { def main(args: Array[Str...
1173 0
|
1月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
49 5
下一篇
无影云桌面