小编fri*_*ron的帖子

当静态类型为Map时,Scala SortedMap.map方法返回未排序的映射

我在使用Scala的SortedMap [A​​,B]时遇到了一些未经授权的陌生感.如果我将SortedMap [A​​,B]"a"的引用声明为Map [A​​,B]类型,那么对"a"的映射操作将产生一个非有序映射实现.

例:

import scala.collection.immutable._

object Test extends App {
    val a: Map[String, String] = SortedMap[String, String]("a" -> "s", "b" -> "t", "c" -> "u", "d" -> "v", "e" -> "w", "f" -> "x")
    println(a.getClass+": "+a)

    val b = a map {x => x}  // identity
    println(b.getClass+": "+b)
}
Run Code Online (Sandbox Code Playgroud)

以上的输出是:

class scala.collection.immutable.TreeMap:Map(a - > s,b - > t,c - > u,d - > v,e - > w,f - > x)
class scala.collection.immutable.HashMap $ HashTrieMap:Map(e - > w,f - …

collections functional-programming scala sortedmap higher-order-functions

7
推荐指数
1
解决办法
1162
查看次数