如何从Scala中的对象列表中获取地图列表

时间:2013-08-16 06:18:18

标签: scala scala-collections

我需要Scala的一些帮助。我真的很难理解如何处理收藏品。我要做的是遍历像这样的列表

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

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

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

请注意,所有地图的'key'元素必须相同

由于

2 个答案:

答案 0 :(得分:1)

您可以使用地图功能将 MyObject 列表转换为地图列表:

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

答案 1 :(得分: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))