在Scala中,把哈希表這種數(shù)據(jù)結(jié)構(gòu)叫做映射。
創(chuàng)新互聯(lián)建站是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)絡(luò)營銷、企業(yè)網(wǎng)站建設(shè),外鏈,一元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計到用戶體驗提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
在Scala中,有兩種Map,一個是immutable包下的Map,該Map中的內(nèi)容不可變;另一個是mutable包下的Map,該Map中的內(nèi)容可變。
構(gòu)建一個不可變的map
使用元組方式構(gòu)建
構(gòu)建一個可變的map
根據(jù)鍵獲取map中對應(yīng)的值,可以有以下三種方法,尤其推薦使用getOrElse方法。
修改可變map信息,遍歷訪問map
object?MappingDemo {
??def?main(args: Array[String]): Unit = {
????//定義構(gòu)建一個可變的map
????val?scores = scala.collection.mutable.Map?("zhangsan"?-> 90, "lisi"?-> 80, "wangwu"?-> 0)
????//val scores2 = scala.collection.mutable.Map ("moumou"->50) ??
????//修改map中對應(yīng)鍵的值
????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+" ?")
??}
執(zhí)行結(jié)果
可變map
import?scala.collection.mutable
object?MutMapDemo?extends?App{
??val?map1 =?new?mutable.HashMap[String, Int]()
??//向map中添加數(shù)據(jù)
??map1("spark") = 1
??map1 += (("hadoop", 2))
??map1.put("storm", 3)
??println(map1)
??//從map中移除元素
??map1 -= "spark"
??map1.remove("hadoop")
??println(map1)
}