Ich habe eine Liste von StringsKonvertieren Liste in eine Karte mit Schlüsseln ein Index in Scala sind
val list = List("a", "b", "c", "d", "e")
und ich möchte eine Karte mit Schlüssel als Indizes der Elemente in der Liste haben. Also habe ich folgendes:
def mapByIndexes(list: List[String]): Map[Int, String] = (1 to list.size).zip(list).toMap
Allerdings ist die resultierende Karte nicht den Index, um zu erhalten und ich bin immer dies als Resultat:
Map(5 -> "e", 1 -> "a", 2 -> "b", 3 -> "c", 4 -> "d")
Wie kann ich über so ändern Sie den Code I bekomme ich eine Karte mit der folgenden, natürlichen Reihenfolge?
Map(1 -> "a", 2 -> "b", 3 -> "c", 4 -> "d", 5 -> "e")
Hinweis: Ich bin mir bewusst, dass ich nur die resultierende Karte sortieren kann, aber kann ich diesen Schritt vermeiden und eine Karte erstellen, die bereits den Auftrag erhält?
Edit: Lösung mit ListMap
beschrieben um Scala LinkedHashMap.toMap preserves order? funktioniert, aber ich mag keine zusätzlichen Klammern und _*
für so einfache Sache. Gibt es sonst noch etwas, so kann ich nur eine Kette haben? Wenn nicht, werde ich @pamu antworten annehmen.
Mögliches Duplikat von [Scala LinkedHashMap.toMap bewahrt die Reihenfolge?] (Http://Stackoverflow.com/questions/6199186/scala-linkedhashmap-tomap-preserve-order) –