ich die folgenden Typen haben:Transformation eine Liste auf eine Karte
case class Category(id: Int, name: String)
case class Product(id: Int, location: Location, categoryIdList: Option[List[Int]])
eine Liste der Produkte gegeben
val products:List[Product] = loadProducts()
Wie kann ich Produkt eine Karte von categoryId zu Ort?
Map[categoryId, Location]
So würde meine Methode wie folgt aussehen:
def getMap(products: List[Product]): Map[Int, Location] = {
??
}
Ich muss irgendwie über die optionale Liste von categoryIdList laufen und dann eine Karte aus, dass mit der Location-Eigenschaft erstellen.
Was passiert, wenn zwei Produkte mit den gleichen categoryId aber unterschiedliche Orte? Ihre erklärte Karte würde Informationen über einen von ihnen verlieren. – Daenyth
@Daenyth einfach ignorieren, für jetzt, in meinem Fall wird es nicht passieren –
Auch, Option [List [Int]] 'ist nicht ein sehr nützlicher Typ - semantisch Sie sagen" Produkt kann oder nicht haben eine Liste von categoryIds, die leer sein können oder nicht ". Besser wäre 'Option [NonEmptyList]' anstatt, oder wenn Sie effizienter getMap wollen, dann wäre 'Set [Int] 'besser – Daenyth