Convertir une liste en map en Scala

Suraj P 13 juin 2022
  1. Liste et map en Scala
  2. Convertir une liste en map en Scala
Convertir une liste en map en Scala

Cet article vous apprendra comment convertir une liste en map dans Scala.

Liste et map en Scala

Examinons d’abord les brèves définitions de List et Map.

  1. Une liste est une collection de types similaires de données immuables. Il est utilisé pour représenter une liste chaînée dans Scala.

    Syntaxe:

    list_name = List( element1, element2 , element3....)
    

    Exemple:

    val fruits = List("Orange", "Apple" , "Mango" )
    
  2. Map in Scala est une collection de paires clé-valeur. Les clés sont toujours uniques, tandis que les valeurs peuvent être répétées ; ils sont très utiles pour la récupération de données.

    Les maps dans Scala peuvent être immuables ou modifiables, mais par défaut, elles sont immuables.

    Syntaxe:

    map_name = Map(key1->value1, key2->value2, key3->value3 ....)
    

    Exemple:

    val marks = Map("tony" -> 30, "bruce" -> 20,"Iron Man" -> 50)
    

Convertir une liste en map en Scala

Pour convertir une liste en map en Scala, on utilise la méthode toMap. Nous devons nous rappeler qu’une map contient une paire de valeurs, c’est-à-dire une paire clé-valeur, alors qu’une liste ne contient que des valeurs uniques.

Nous avons donc deux façons de le faire :

  1. Utiliser la méthode zipWithIndex pour ajouter des index comme clés à la liste.
  2. Fusionner deux listes en considérant l’une comme clé et l’autre comme valeur.

la méthode zipWithIndex dans Scala

Nous utiliserons la méthode zipWithIndex et la méthode toMap de Scala pour ajouter des clés à la liste.

Syntaxe:

map_name = list_name.zipWithIndex.map{ case(k,v) => (v,)}.toMap

Exemple de code :

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)
    }
}

Production:

The values of map : Map(0 -> Apple, 1 -> Orange, 2 -> Watermelon, 3 -> Mango)

Dans le code ci-dessus, nous avons créé une liste de fruits contenant les noms de différents fruits. Nous avons la méthode toMap pour convertir la liste en map.

La liste ne contient que des valeurs uniques ; nous avons utilisé la méthode zipWithIndex pour ajouter des valeurs d’index en tant que clés, en commençant par 0 à chaque élément de la liste.

Fusionner deux listes pour convertir la liste en map dans Scala

Nous pouvons fusionner deux listes pour créer une map ; ici, nous utilisons une liste comme clés et l’autre comme valeurs à la fin, créant des paires clé-valeur pour la map.

Voici quelques points à garder à l’esprit lors de la fusion de deux listes :

  1. La liste que nous utilisons comme clé doit avoir des éléments uniques. Si les éléments sont uniques, le dernier élément sera pris en compte.
  2. Les deux listes doivent avoir un nombre égal d’éléments ; une valeur doit être présente pour chaque clé. Si ce n’est pas le cas, alors les éléments excédentaires de la liste seront ignorés.

Syntaxe:

val map_name = (list_1 zip list_2).toMap

Exemple de code :

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)
    }
}

Production:

The values of map : Map(Tony -> 33, Bruce -> 56, Strange -> 89, Iron Man -> 99)

Nous avons deux listes, names et marks dans le code ci-dessus. Nous avons utilisé la méthode toMap pour convertir une liste en map, la liste names est utilisée comme clé et la liste marks est utilisée comme valeur, et nous les avons fusionnées en utilisant zip et stocké le résultat map dans la map result.

Auteur: 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

Article connexe - Scala List