更新映射中的值
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]的转换
网友评论