是否可以在“ A”点返回带有toMap函数的SortedMap或TreeMap?还是需要完成该任务的“ B”点?
A:

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)

最佳答案

通常,您可以使用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)

关于scala - Scala函数toMap到SortedMap或TreeMap?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26371903/

10-16 02:56