2016-05-15 13 views
2

zusammen, ich bin neu in scala und ich hatte eine Frage Ich brauche Liste von Fall Klasse String konvertieren ähnlich wie diesescala Kollektionen String

unit1 res_1 
unit1 res_2 
unit1 res_3 

case class Items(unitId: String, residents: List[String]) 

Ich versuche, so etwas wie dieses

val l : List[Items] 

val mappingList = l.map(item => { 
    item.residents.map(r => item.unitId + ' ' + r) 
}).flatten 

mappingList.mkString('\n') 

Kann jemand besseren Weg vorschlagen?

Dank Swetha

Antwort

1

ist Ihr Ansatz richtig.

case class Items(unitId: String, residents: List[String]) 

def itemsToString(l: List[Items]): String = 
    l.flatMap { item => 
    item.residents.map(r => item.unitId + ' ' + r) 
    } .mkString("\n") 
1

ist oft deutlich unter Verwendung eines für das Verständnis dieser Art von Problem:

val mappingList = for { 
    item <- l 
    resident <- item.residents 
} yield item.unitId + ' ' + resident 

mappingList mkString "\n" 
Sie können durch Kollabieren map von flatten in flatMap gefolgt vereinfachen