好程序员大数据学习路线分享Scala系列之映射Map

  1. 云栖社区>
  2. 博客>
  3. 正文

好程序员大数据学习路线分享Scala系列之映射Map

好程序员 2019-09-04 14:31:03 浏览318
展开阅读全文

好程序员大数据学习路线分享Scala系列之映射Map首先我们先来看一下什么是映射(map)
在Scala中,把哈希表这种数据结构叫做映射。

  1. 构建映射
    在Scala中,有两种Map,一个是immutable包下的Map,该Map中的内容不可变;另一个是mutable包下的Map,该Map中的内容可变。

构建一个不可变的map
_1

使用元组方式构建
_2

构建一个可变的map
_3

  1. 获取和修改映射中的值
    根据键获取map中对应的值,可以有以下三种方法,尤其推荐使用getOrElse方法。

_4

修改可变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+"  ")

}
执行结果
_5

  1. 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)
}

网友评论

登录后评论
0/500
评论
好程序员
+ 关注