我如何使用一个 for-comprehension 来返回我可以分配给有序 Map 的东西?这是我拥有的代码的简化:
class Bar
class Foo(val name: String, val bar: Bar)
val myList: java.util.List[Foo] = ...
val result: ListMap[String, Bar] =
for {
foo <- myList
} yield (foo.name, foo.bar)
我需要确保我的结果是一个有序的 Map,按照从 for-comprehension 返回元组的顺序。
有了上面,我得到了错误:
error: type mismatch;
found : scala.collection.mutable.Buffer[(String,Bar)]
required: scala.collection.immutable.ListMap[String,Bar]
foo <- myList
这编译:
class Bar
class Foo(val name: String, val bar: Bar)
val myList: java.util.List[Foo] = ...
val result: Predef.Map[String, Bar] =
{
for {
foo <- myList
} yield (foo.name, foo.bar)
} toMap
但后来我假设地图不会被订购,我需要一个明确的 toMap 调用。
我怎样才能做到这一点?