《快学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》第四章——映射和数组的主要内容,如果未能解决你的问题,请参考以下文章