Liste in Map umwandeln in Scala
In diesem Artikel erfahren Sie, wie Sie in Scala eine Liste in eine Map konvertieren.
Liste und Map in Scala
Schauen wir uns zunächst kurze Definitionen von List und Map an.
-
Eine Liste ist eine Sammlung gleichartiger unveränderlicher Daten. Es wird verwendet, um eine verkettete Liste in Scala darzustellen.
Syntax:
list_name = List( element1, element2 , element3....)
Beispiel:
val fruits = List("Orange", "Apple" , "Mango" )
-
Map in Scala ist eine Sammlung von Schlüssel-Wert-Paaren. Schlüssel sind immer eindeutig, während Werte wiederholt werden können; Sie sind sehr nützlich für den Datenabruf.
Mapn in Scala können unveränderlich oder veränderlich sein, aber standardmäßig sind sie unveränderlich.
Syntax:
map_name = Map(key1->value1, key2->value2, key3->value3 ....)
Beispiel:
val marks = Map("tony" -> 30, "bruce" -> 20,"Iron Man" -> 50)
Liste in Scala in Map umwandeln
Um in Scala eine Liste in eine Map umzuwandeln, verwenden wir die Methode toMap
. Wir müssen uns daran erinnern, dass eine Map ein Wertepaar enthält, dh ein Schlüssel-Wert-Paar, während eine Liste nur einzelne Werte enthält.
Wir haben also zwei Möglichkeiten, dies zu tun:
- Mit der Methode
zipWithIndex
Indizes als Schlüssel zur Liste hinzufügen. - Zusammenführen von zwei Listen, wobei eine als Schlüssel und die andere als Werte betrachtet wird.
die zipWithIndex
-Methode in Scala
Wir werden die Methode zipWithIndex
und die Methode toMap
von Scala verwenden, um der Liste Schlüssel hinzuzufügen.
Syntax:
map_name = list_name.zipWithIndex.map{ case(k,v) => (v,)}.toMap
Beispielcode:
object myClass {
def main(args: Array[String]) {
val fruits = List("Apple", "Orange" , "Watermelon" , "Mango")
val map = fruits.zipWithIndex.map{ case (k,v) => (v,k) }.toMap
println("The values of map : "+ map)
}
}
Ausgabe:
The values of map : Map(0 -> Apple, 1 -> Orange, 2 -> Watermelon, 3 -> Mango)
Im obigen Code haben wir eine Liste von Früchten
erstellt, die die Namen verschiedener Früchte enthält. Wir haben die Methode toMap
, um die Liste in die Map umzuwandeln.
Die Liste enthält nur Einzelwerte; Wir haben die Methode zipWithIndex
verwendet, um Indexwerte als Schlüssel hinzuzufügen, beginnend bei 0 zu jedem Listenelement.
Führen Sie zwei Listen zusammen, um die Liste in Scala in eine Map umzuwandeln
Wir können zwei Listen zusammenführen, um eine Map zu erstellen; Hier verwenden wir eine Liste als Schlüssel und die andere als Werte am Ende, wodurch Schlüssel-Wert-Paare für die Map erstellt werden.
Einige Punkte, die Sie beim Zusammenführen zweier Listen beachten sollten, sind:
- Die Liste, die wir als Schlüssel verwenden, sollte eindeutige Elemente enthalten. Wenn die Elemente eindeutig sind, wird das spätere Element berücksichtigt.
- Beide Listen sollten gleich viele Elemente haben; für jeden Schlüssel sollte ein Wert vorhanden sein. Ist dies nicht der Fall, werden die überzähligen Elemente der Liste ignoriert.
Syntax:
val map_name = (list_1 zip list_2).toMap
Beispielcode:
object myClass {
def main(args: Array[String]) {
val names = List("Tony", "Bruce" , "Strange" , "Iron Man")
val marks = List(33 ,56 ,89 ,99)
val result = (names zip marks).toMap
println("The values of map : "+ result)
}
}
Ausgabe:
The values of map : Map(Tony -> 33, Bruce -> 56, Strange -> 89, Iron Man -> 99)
Wir haben zwei Listen, names
und marks
im obigen Code. Wir haben die Methode toMap
verwendet, um eine Liste in eine Map umzuwandeln, die Liste names
wird als Schlüssel verwendet und die Liste marks
wird als Wert verwendet, und wir haben sie mit zip
zusammengeführt und das Ergebnis gespeichert Map in der Map result
.