0

我需要一些关于 Scala 的帮助。我真的很难理解如何处理集合。我要做的是遍历这样的列表

List( MyObject(id, name, status), ..., MyObject(id, name, status) )

并获得另一个像这样的列表

List( Map("key", id1), Map("key", id2), ..., Map("key", idN) )

请注意,所有地图的“关键”元素必须相同

谢谢

4

2 回答 2

1

您可以使用map函数通过以下方式将MyObject列表转换为Map列表:

val list = List( MyObject(id, name, status), ..., MyObject(id, name, status) )
val result = list map {o => Map("key" -> o.id)}

twitter 的scala school适合初学者阅读,如果想详细了解 Scala 集合框架的架构,请参考scala doc

于 2013-08-16T06:20:19.707 回答
0

我认为应该这样做。

list map { x => Map( "key" -> x.id ) }

一个例子

scala> case class Tst (fieldOne : String, fieldTwo : String)
defined class Tst

scala> val list = List(Tst("x", "y"), Tst("z", "a"))
list: List[Tst] = List(Tst(x,y), Tst(z,a))

list map { x => Map( "key" -> x.fieldOne ) }
res6: List[scala.collection.immutable.Map[String,String]] = List(Map(key -> y), Map(key -> a))
于 2013-08-16T06:27:04.140 回答