为什么具有默认值的 SortedMap 不再排序?
Why is SortedMap with default value not sorted anymore?
有默认值的 SortedMap 成为常规未排序 Map 的原因吗?
scala> val a = scala.collection.immutable.SortedMap(1 -> "uno", 3 -> "tres", 2 -> "dos")
a: scala.collection.immutable.SortedMap[Int,String] = Map(1 -> uno, 2 -> dos, 3 -> tres)
scala> a.withDefaultValue("")
res19: scala.collection.immutable.Map[Int,String] = Map(1 -> uno, 2 -> dos, 3 -> tres)
函数 withDefaultValue
在 Map
和 returns 包装器类型 WithDefault
中实现,它具有原始 Map
作为底层实现。
虽然类型只是Map[A, B]
,底层地图仍然是你排序的地图。您添加的键仍将排序:
val a: SortedMap[Int, String] = scala.collection.immutable.SortedMap(1 -> "uno", 3 -> "tres", 2 -> "dos")
val b = a.withDefaultValue("")
val c = b + (4 -> "quattro")
val d = c + (0 -> "zero")
val e = d.toList
>> e: List[(Int, String)] = List((0,zero), (1,uno), (2,dos), (3,tres), (4,quattro))
有默认值的 SortedMap 成为常规未排序 Map 的原因吗?
scala> val a = scala.collection.immutable.SortedMap(1 -> "uno", 3 -> "tres", 2 -> "dos")
a: scala.collection.immutable.SortedMap[Int,String] = Map(1 -> uno, 2 -> dos, 3 -> tres)
scala> a.withDefaultValue("")
res19: scala.collection.immutable.Map[Int,String] = Map(1 -> uno, 2 -> dos, 3 -> tres)
函数 withDefaultValue
在 Map
和 returns 包装器类型 WithDefault
中实现,它具有原始 Map
作为底层实现。
虽然类型只是Map[A, B]
,底层地图仍然是你排序的地图。您添加的键仍将排序:
val a: SortedMap[Int, String] = scala.collection.immutable.SortedMap(1 -> "uno", 3 -> "tres", 2 -> "dos")
val b = a.withDefaultValue("")
val c = b + (4 -> "quattro")
val d = c + (0 -> "zero")
val e = d.toList
>> e: List[(Int, String)] = List((0,zero), (1,uno), (2,dos), (3,tres), (4,quattro))