scala学习笔记(三)

    通过前面几天的基础学习,现在学习scala的映射感觉很简单,简单的说,scala可以很简单的创建、查询和遍历映射,scala有可变和不可变映射之分,下面一起来看看scala的映射到底是什么样的吧。

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] //构造一个新的映射

   1、在Scala中函数和映射之间非常相似:

val beiJingNum = immuCities("BeiJing") //获取键为"BeiJing"对应的值,类似java中的immuCities.get("B")

   2、 如果映射并不包含请求中使用的键,则会抛出异常,要检查映射中是否包含此键,可以用contains方法

val value = if(imuCities.contains("BeiJing")) imuCities("BeiJing") else "nothing"

   3、由于这样的组合调用非常普遍,有一种快捷写法:

val value = imuCities.getOrElse("BeiJing","nothing")

   4、更新映射中的值:我们可以更新某个可变映射的值,或者添加或者删除某个映射关系(不可变映射是不能更新)

muCities("ChenDu") = 3 //更新键"ChenDu"对应的值
muCities("GuiZhou") = 4 //添加一组映射关系
muCities += ("HB" -> 5,"HN" -> 6) //添加多个关系
muCities -= "HB" //删除键为"HB"的映射关系
    5、迭代映射:
muCities.keySet //返回所有的键值集合
muCities.values //返回所有的value值集合
for((k,v) <- muCities) yield (v,k) //交换键值位置
 6、元祖:映射是键/值对偶的集合。对偶是元祖的最简单形态
val t = (2,4.2,"abc") //创建一个元祖t
t._1 或者 t _1  //访问元祖t的第一个元素
val (a,b,c) = t //使用模式匹配来获取元祖的组员
val (a,b,_) = t //只需要t的前两个组员
7、使用组员的原因之一是可以将多个值绑定在一起,以便它们能被一起处理,通常需要通过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映射

你可能感兴趣的:(scala学习笔记(三))