Scala与Java差异(五)之Map与Tuple
生活随笔
收集整理的這篇文章主要介紹了
Scala与Java差异(五)之Map与Tuple
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、?創(chuàng)建Map
(1)創(chuàng)建Map
// 創(chuàng)建一個不可變的Map val ages = Map("Leo" -> 30, "Jen" -> 25, "Jack" -> 23) ages("Leo") = 31 // 創(chuàng)建一個可變的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)) // 創(chuàng)建一個空的HashMap val ages = new scala.collection.mutable.HashMap[String, Int](2)訪問Map的元素
// 獲取指定key對應(yīng)的value,如果key不存在,會報錯 val leoAge = ages("Leo") val leoAge = ages("leo")// 使用contains函數(shù)檢查key是否存在 val leoAge = if (ages.contains("leo")) ages("leo") else 0// getOrElse函數(shù) val leoAge = ages.getOrElse("leo", 0)(3)修改Map的元素
// 更新Map的元素 ages("Leo") = 31 // 增加多個元素 ages += ("Mike" -> 35, "Tom" -> 40) // 移除元素 ages -= "Mike" // 更新不可變的map val ages2 = ages + ("Mike" -> 36, "Tom" -> 40) // 移除不可變map的元素 val ages3 = ages - "Tom"(4)遍歷Map
// 遍歷map的entrySet for ((key, value) <- ages) println(key + " " + value) // 遍歷map的key for (key <- ages.keySet) println(key) // 遍歷map的value for (value <- ages.values) println(value) // 生成新map,反轉(zhuǎn)key和value for ((key, value) <- ages) yield (value, key)(5)?SortedMap和LinkedHashMap
// SortedMap可以自動對Map的key的排序 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?
二、Map的元素類型—Tuple
// 簡單Tuple val t = ("leo", 30)// 訪問Tuple t._1// zip操作 val names = Array("leo", "jack", "mike") val ages = Array(30, 24, 26) val nameAges = names.zip(ages) for ((name, age) <- nameAges) println(name + ": " + age)?
總結(jié)
以上是生活随笔為你收集整理的Scala与Java差异(五)之Map与Tuple的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scala与Java差异(四)之数组操作
- 下一篇: 小红书怎么找通讯录好友