经过前面几天的基础学习,如今学习scala的映射感受很简单,简单的说,scala能够很简单的建立、查询和遍历映射,scala有可变和不可变映射之分,下面一块儿来看看scala的映射究竟是什么样的吧。 java
val imuCities = Map("BeiJing" -> 1,"ShangHai" ->2,"Shenzhen" ->3) //构造不可变映射 val muCities = collection.mutable.Map("ChongQing" -> 1,"Chengdu" -> 2) //构造可变映射 val map3 = new collection.mutable.HashMap[Int,String] //构造一个新的映射
一、在Scala中函数和映射之间很是类似: 数组
val beiJingNum = immuCities("BeiJing") //获取键为"BeiJing"对应的值,相似java中的immuCities.get("B")
二、 若是映射并不包含请求中使用的键,则会抛出异常,要检查映射中是否包含此键,能够用contains方法 函数
val value = if(imuCities.contains("BeiJing")) imuCities("BeiJing") else "nothing"
三、因为这样的组合调用很是广泛,有一种快捷写法: 学习
val value = imuCities.getOrElse("BeiJing","nothing")
四、更新映射中的值:咱们能够更新某个可变映射的值,或者添加或者删除某个映射关系(不可变映射是不能更新) ui
muCities("ChenDu") = 3 //更新键"ChenDu"对应的值 muCities("GuiZhou") = 4 //添加一组映射关系 muCities += ("HB" -> 5,"HN" -> 6) //添加多个关系 muCities -= "HB" //删除键为"HB"的映射关系五、迭代映射:
muCities.keySet //返回全部的键值集合 muCities.values //返回全部的value值集合 for((k,v) <- muCities) yield (v,k) //交换键值位置六、元祖:映射是键/值对偶的集合。对偶是元祖的最简单形态
val t = (2,4.2,"abc") //建立一个元祖t t._1 或者 t _1 //访问元祖t的第一个元素 val (a,b,c) = t //使用模式匹配来获取元祖的组员 val (a,b,_) = t //只须要t的前两个组员七、使用组员的缘由之一是能够将多个值绑定在一块儿,以便它们能被一块儿处理,一般须要经过zip方法来完成,如:
val t = (2,3,4) val t2 = ("s","b","c") val pairs = t.zip(t2) //拉练操做:返回一个对偶的数组 Array((2,"s"),(3,"b"),(4,"c")) val tArray = pairs.toMap //转换为Map映射