Scala函数toMap到SortedMap或TreeMap?

时间:2014-10-14 23:08:49

标签: scala

是否可以在“A”点返回带有toMap功能的SortedMap或TreeMap?或者点“B”是否需要遵守这项任务? 答:

val list = List(5, 4, 3).map(i => i -> i ).toMap
println(list)
Map(5 -> 5, 4 -> 4, 3 -> 3)

B:

println(SortedMap[Int, Int]() ++ list)
Map(3 -> 3, 4 -> 4, 5 -> 5)

1 个答案:

答案 0 :(得分:3)

通常,您可以使用to[Coll]方法。由于类型参数的优点,它在这里失败了:

import scala.collection.immutable.SortedMap

// error: SortedMap takes two type parameters, expected: one
val list = List(5, 4, 3).map(i => i -> i ).to[SortedMap]

但是您可以注释返回类型并使用breakOut导入为任意集合类型提供必要的构建器工厂:

import scala.collection.breakOut
val list: SortedMap[Int, Int] = List(5, 4, 3).map(i => i -> i)(breakOut)