scala学习笔记(三)

    经过前面几天的基础学习,如今学习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映射
相关文章
相关标签/搜索