您好,登錄后才能下訂單哦!
在Scala中,把哈希表這種數據結構叫做映射。
在Scala中,有兩種Map,一個是immutable包下的Map,該Map中的內容不可變;另一個是mutable包下的Map,該Map中的內容可變。
構建一個不可變的map
使用元組方式構建
構建一個可變的map
根據鍵獲取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+" ?")
??}
執行結果
可變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)
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。