《快学Scala》第四章——映射和数组

Posted lyq-biu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《快学Scala》第四章——映射和数组相关的知识,希望对你有一定的参考价值。

一.本章要点

  • Scala有十分易用的语言来创建,查询和遍历映射
  • 你需要从可变和不可变的映射中做出选择
  • 默认情况下,你得到的是一个哈希映射,不过你也可以指明要树形映射
  • 你可以很容易地在Scala映射和Java映射之间来回切换
  • 元祖可以用来聚集值

二.构造映射(哈希表)

  构造不可变映射:

    val scores=Map("Alice"->100,"Bob"->3,"Cindy"->8)

  构造可变映射:

    val scores=scala.collection.multable.Map("Alice"->10,"Bob"->3,"Cindy->8") 

  构造空映射:    

    val scores=scala.collection.multable.Map(String,Int)

  注:也可以使用()替换->     

三.获取映射中的值

  使用()获取,如果没有该键会抛出异常,使用contains方法检查是否包含某个键,可以使用getOrElse方法获取。

四.更新映射中的值

  可变映射:

    直接更新:scores("Bob")=20

    没有该键则增加新的值:scores("LYQ")=100

    通过+=添加多个关系:scores+=("Bob"->11,"Fed"->23)

    通过-=移除:scores-="Bob"

  不可变映射:

    可以获取包含所需要的更新的新映射:val newScores=scores+("Bob"->10,"Fed"->22)

    通过-获取一个新的去掉该键的值:scores-=scores-"Alice"      

五.迭代映射

  迭代键值:for((k,v)<-映射) 处理k,v;  

  只处理键:scores.keySet();

  只处理值:scores.values

六.已排序映射

  不可变树形映射:val scores=scala.collections.immutable.SortedMap("Alice"->10,"Fred"->6,"Bob"->9)

  可变的树形结构(Scala目前没有):可以用Java的TreeMap

  按插入顺序访问所有键:val months=scala.collections.mutable.LinkedHashMap(.....)

七.与Java的互操作

 

八.元祖

九.拉链操作

以上是关于《快学Scala》第四章——映射和数组的主要内容,如果未能解决你的问题,请参考以下文章

快学Scala习题解答—第三章 数组相关操作

Scala快学笔记

快学SCALA--数组相关操作

快学Scala第13章----集合

快学Scala 第三章 #4答案

快学Scala 第三课 (定长数组,变长数组, 数组循环, 数组转换, 数组常用操作)