好程式設計師大資料學習路線分享Scala系列之對映Map

好程式設計師IT發表於2019-09-04

好程式設計師大資料學習路線分享Scala 系列之對映 Map首先我們先來看一下什麼是 對映(map

Scala中,把雜湊表這種資料結構叫做對映。

1.  構建對映

Scala中,有兩種Map,一個是immutable包下的Map,該Map中的內容不可變;另一個是mutable包下的Map,該Map中的內容可變。

構建一個不可變的map


使用元組方式構建


構建一個可變的map


2.  獲取和修改對映中的值

根據鍵獲取map中對應的值,可以有以下三種方法,尤其推薦使用getOrElse方法。


修改可變map資訊,遍歷訪問map

object MappingDemo {
   def main(args: Array[String]): Unit = {
     // 定義構建一個可變的 map
     val scores = scala.collection.mutable.Map ("zhangsan" -> 90, "lisi" -> 80, "wangwu" -> 0)
     //val scores2 = scala.collection.mutable.Map ("moumou"->50)   
     // 修改 map 中對應鍵的值
    scores("wangwu") = 100

     // 新增新的鍵值到 map
    scores("zhaoliu") = 50  // 類似  scores.update("zhangsan",50)
    scores += ("sunqi" -> 60, "qianba" -> 99)
     //scores ++ =scores2

     // 移除某個鍵值對
    scores -= "zhangsan"  // 類似  scores.remove("zhangsan")
     //scores -- =scores2  不好用???

     // 獲取鍵的集合並遍歷
     // 意義不大?如何透過建取到值
     val res = scores.keySet
     for(elem <- res)
      print(elem + "  ")
    println()

     // 遍歷 map
     for ((k,v) <- scores)
      print(k+":"+v+"  ")
  }

執行結果


3. HashMap

可變map

import scala.collection.mutable

object MutMapDemo  extends App{
   val map1 =  new mutable.HashMap[String, Int]()
   // map 中新增資料
  map1("spark") = 1
  map1 += (("hadoop", 2))
  map1.put("storm", 3)
  println(map1)

   // map 中移除元素
  map1 -= "spark"
  map1.remove("hadoop")
  println(map1)
}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2655978/,如需轉載,請註明出處,否則將追究法律責任。

相關文章