1. 程式人生 > >Scala編程入門---Map與Tuple

Scala編程入門---Map與Tuple

ack mmu contain ges lin ice logs 簡單 創建

創建Map

//創建一個不可變的Map
val ages = Map("Leo" -> 30,"Jen" ->25,"Jack" ->23)
ages("Leo") =31
//創建一個可變的Map
val ages =scala.collection.mutable.Map("Leo" ->30,"Jen" ->25,"Jack" ->23)
ages("Leo") = 31
//使用另外一種方式定義Map元素
val ages = Map(("Leo",30),("Jen",25),("Jack",23))
//創建一個工的HashMap
val ages = new scala.collection.mutable.HashMap[String,int
]

訪問Map元素

//獲取指定Key對應的value,如果key不存在,會報錯
val leoAge = ages("Leo")
val leoAge = ages("leo")

//使用contains函數檢查key是否存在
val leoAge = if(ages.contains("leo")) ages("leo") else 0

//getOrElse函數
val leoAge = ages.getOrElse("leo",0)

修改Map的元素

//更新Map的元素

ages("leo") =31

//增加多個元素

ages +=("Mike" -> 35,"Tom" 0> 40)

//移除元素 ages -="Mike" //更新不可變的map val ages2 = ages +("Mike" -> 36,"Tom" ->40) //移除不可變的元素 val ages3 = ages-"Tom"

遍歷Map

//遍歷map的entrySet
for ((key,value) <- ages) printlin(key+"" +value)
//遍歷Map的Key
for(key <-ages.keySet) println(key)
//遍歷Map的value
for(value <- ages.value ) println(value)
//生成新map,反轉Key和value
for((key,value) <- ages) yield (value,key)

Map的排序

//sortedMap可以自動對Map的可以排序
val ages = scala.collection.immutable.SortedMap("leo" ->30,"alice" ->15,"jen" ->25)
//LinkedHashMap可以記住插入entry的順序
val ages =new scala.collection.mutable.LinkedHashMap[String,int]
ages("leo")= 30
ages("alice")=15
ages("jen")=25

Tuple

//簡單Tuple
val t =("leo",30)
//訪問Tuple
t._1
    
//zip操作
val names =Array("leo","jack"," mike")
val ages = Array(30,23,26)
val nameAges = names.zip(ages)
for((name,age) <- nameAges) println(name +":"+age)

Scala編程入門---Map與Tuple