分享

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

 好程序员IT 2019-09-04

大数据学习路线分享Scala系列之映射Map首先我们先来看一下什么是映射(map)

在Scala中,把哈希表这种数据结构叫做映射。

1. 构建映射

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

构建一个不可变的map

使用元组方式构建

构建一个可变的map

2. 获取和修改映射中的值

根据键获取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+" ")

  }

执行结果

3. 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

    0条评论

    发表

    请遵守用户 评论公约