我需要一些关于 Scala 的帮助。我真的很难理解如何处理集合。我要做的是遍历这样的列表
List( MyObject(id, name, status), ..., MyObject(id, name, status) )
并获得另一个像这样的列表
List( Map("key", id1), Map("key", id2), ..., Map("key", idN) )
请注意,所有地图的“关键”元素必须相同
谢谢
我需要一些关于 Scala 的帮助。我真的很难理解如何处理集合。我要做的是遍历这样的列表
List( MyObject(id, name, status), ..., MyObject(id, name, status) )
并获得另一个像这样的列表
List( Map("key", id1), Map("key", id2), ..., Map("key", idN) )
请注意,所有地图的“关键”元素必须相同
谢谢
您可以使用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
我认为应该这样做。
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))