【发布时间】:2011-04-19 04:23:44
【问题描述】:
如何使用 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 调用。
我怎样才能做到这一点?
【问题讨论】:
标签: scala scala-2.8 scala-collections