Liste in Map umwandeln in Scala

Suraj P 13 Juni 2022
  1. Liste und Map in Scala
  2. Liste in Scala in Map umwandeln
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.

  1. 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" )
    
  2. 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:

  1. Mit der Methode zipWithIndex Indizes als Schlüssel zur Liste hinzufügen.
  2. 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:

  1. Die Liste, die wir als Schlüssel verwenden, sollte eindeutige Elemente enthalten. Wenn die Elemente eindeutig sind, wird das spätere Element berücksichtigt.
  2. 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.

Autor: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

Verwandter Artikel - Scala List