2016-04-01 20 views
0

Harita [Dize, Liste [Dize]] 'yi bir scala'daki [String, String] Haritasına dönüştürmeme yardımcı olabilir ? İşte Scala Haritaya [Dize, Liste [Dize]] Dönüştürme [Dize, Dize]

Harita [String, Liste [dize]] aşağıdaki gibidir: aşağıdaki gibi [String, String '] Haritaya dönüştürülmesi gereken

val pets: Map[String, List[String]] = Map(
    "home" -> List("cat", "dog", "fish"), 
    "farm" -> List("cow", "horse"), 
    "wild" -> List("tiger", "elephant") 
) 

:

val pets2: Map[String, String] = Map(
    "home" -> "cat", 
    "home" -> "dog", 
    "home" -> "fish", 
    "farm" -> "cow", 
    "farm" -> "horse", 
    "wild" -> "tiger", 
    "wild" -> "elephant" 
) 
+1

soruyorsun ne imkansızdır. Haritalar, tekrarlanan anahtarlara sahip olamaz. – pedrofurla

+0

Ama bir MultiMap –

cevap

3

Daha önce belirtildiği gibi, Map'daki her anahtar benzersizdir. sözü

, ne can yapmak dizilerini dizisine harita dönüştürmek geçerli:

pets.toSeq.flatMap { case (key, list) => list.map(key -> _) } 

size verecektir:

ArrayBuffer(
    (home,cat), 
    (home,dog), 
    (home,fish), 
    (farm,cow), 
    (farm,horse), 
    (wild,tiger), 
    (wild,elephant) 
) 
1

Haritalar olamaz tekrarlanan tuşlar var.

+0

hakkı var. Üzgünüm bunu unutmuşum. – user422930