經過前面幾天的基礎學習,如今學習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映射