Как я могу использовать для понимания, которое возвращает то, что я могу назначить для упорядоченной карты? Это упрощение кода, который у меня есть:
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)
Мне нужно убедиться, что мой результат - это упорядоченная Карта, в которой кортежи возвращаются из-за понимания.
С вышеизложенным я получаю ошибку:
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.
Как мне этого добиться?