2014-01-28 55 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]) 
相關問題