美文网首页
四:scala(4)映射和元组

四:scala(4)映射和元组

作者: _兰陵笑笑生 | 来源:发表于2019-07-12 22:52 被阅读0次

    一个经典的程序员名言是: “如果只能有一种数据结构,那就用哈希表吧。
    ”哈 希表一一-或者更笼统地说,映射一一是最灵活多变的数据结构之一。

    1.Scala有十分易用的语法来创建、查询和遍历映射。
    2.你需要从可变的和不可变的映射中做出选择。
    3.默认情况下,你得到的是一个哈希映射,不过你也可以指明要树形映射。

    创建映射

    不可变的集合

    val scores =Map (”Alice”-> 10,”Bob'’-> 3 ,”C工ndy”-> 8)
    

    可变的集合

    val scores = scala.coll ection.mutable.Map (”Alice”-> 10,”Bob'’-> 3, ”Cindy”-> 8) 
    

    获取映射中的值

    val bobsScore =scores (”Bob”)
    //类似于Java中的scores.get (”Bob”)
    

    如果映射并不包含请求中使用的键,则会抛出异常。
    要检查映射中是否有某个指定的键,可以用contains方法

    val bobsScore = if (scores.conta工ns (”Bob”)) scores (” Bob”) else 0 
    

    可以

    val bobsScore = scores.getOrElse ( ”Bob”, 。) 
    

    最后,映射 . get(键)这样的调用返回一个Option对象,
    要么是Some (键对应的 值),要么是None。

    更新

    scores (”Bob”) = 10
     //更新键”Bob”对应的位(假定scores是可变的)
    scores (”Fred") = 7
    // 增加新的键/位对偶到 scores (假定它是可变的)
    //  或者,你也可以用+=操作来添加多个关系:
    
    scores += (”Bob”-> 10,”Fred”-> 7) 
    
    scores -= ” Alice”  //移除
    

    不可变的映射可以通过创建新的集合来创建

    迭代映射

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

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

    要反转一个映射一一即交换键和值的位置,可以用
    for ( (k, v)←映射) yield (v, k)

    己排序映射

    val scores = scala .collection .mutable.SortedMap (”Al工ce " - > 10,
    ” Fred" - > 7, ” Bob” - > 3 , ”C工ndy” -> 8)

    相关文章

      网友评论

          本文标题:四:scala(4)映射和元组

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