美文网首页
Scala菜鸟的进阶之路之映射和元组二

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

作者: lukeyan | 来源:发表于2017-09-01 08:44 被阅读17次

    更新映射中的值

    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]的转换

    相关文章

      网友评论

          本文标题:Scala菜鸟的进阶之路之映射和元组二

          本文链接:https://www.haomeiwen.com/subject/lflzdxtx.html