2014-01-28 52 views
0

如何将一系列类实例映射到Scala中的一系列Maps?如何将一系列对象映射到Scala中的Maps?

假设情况有以下几种类型:

class Package(_name: String, _description: String, _homepage: String = null) { 
    var name: String = _name 
    var description: String = _description 
    var homepage: String = _homepage 
} 

而且我们有这种类型的实例序列:

var packages = Seq(
    new Package("A", "Package A", "https://github.com/package/a"), 
    new Package("B", "Package B") 
) 

如何映射packages到地图的顺序?

的地图应该是等同于以下内容:

Seq(
    ("name" -> "A", "description" -> "Package A", "homepage" -> "https://github.com/package/a"), 
    ("name" -> "B", "description" -> "Package B", "homepage" -> null) 
) 
+1

做地图是什么样子? – Lee

+0

@Lee看到我的编辑 – aknuds1

回答

3

你可以这样做:

packages.map(p => Map(("name", p.name), ("description", p.description), ("homepage", p.homepage))) 
+0

似乎工作得很好,谢谢! – aknuds1

1

要创建地图packagesname为关键和Package,因为这会做的值。根据您的编辑

scala> packages.map(p => p.name -> p).toMap 
res7: scala.collection.immutable.Map[String,Package] = Map(A -> [email protected], B -> [email protected]) 
相关问题