ITPub博客

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

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

原创 数据分析 作者:好程序员IT 时间:2019-09-04 14:33:19 0 删除 编辑

好程序员大数据学习路线分享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)
}


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913892/viewspace-2655978/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
欢迎关注公众号:好程序员特训营 web前端教程分享 723729549 大数据教程分享 703503210

注册时间:2019-03-20

  • 博文量
    539
  • 访问量
    410789