Scala菜鸟的进阶之路之映射和元组二

2017-09-01  本文已影响17人  lukeyan

更新映射中的值

1、在可变映射中,你可以更新某个映射的值,或者添加一个新的映射关系,做法是在 = 号的左侧使用 ():

可以用 += 操作来添加多个关系
要移除某个键和对应的值,使用 -= 操作符

2、你不能更新一个不可变的映射,但你可以做一些同样有用的操作,获取一个包含所需要更新的映射的新映射:

新映射除了可以在原来映射的基础上添加映射,还可以更新已经存在的映射

迭代映射

1、如下这段超简单的循环可遍历映射中所有的键/值对偶:

for ((k, v) <- 映射)  处理 k 和 v

2、如果出于某种原因,你只需要访问键或值,像java一样,则可以用keySet 和 values 方法。 values 方法返回一个 Iterable ,你可以在for循环当中使用这个Iterable

反转映射:

已排序的映射

1、在操作映射时,你需要选定一个实现——一个哈希表或者一个平衡树。

默认情况下,Scala给的是哈希表。由于对使用的键没有很好的哈希函数,或者需要顺序地访问所有的键,因此你可能会想要一个树形映射。

2、要得到一个不可变的树形映射而不是哈希映射的话,可以用:

3、很可惜,Scala(2.9)并没有可变的树形映射,如果你需要,最近的选择是使用Java的TreeMap

4、如果要按插入顺序访问所有键,使用LinkedHashMap,例如:

与Java的互操作

1、如果你通过方法调用得到了一个Java映射,你可能想把它转换为一个Scala映射,以便使用更便捷的Scala映射API。

2、举例:

3、反过来讲,要把Scala映射传递给预期Java映射的方法,提供相反的隐式转换即可

4、除此之外,你还可以得到从java.util.Properties到Map[String,String]的转换

上一篇下一篇

猜你喜欢

热点阅读