Comment créer des dictionnaires dans Dart
Comment créer des dictionnaires dans Dart
-
Introduction aux dictionnaires Dart
-
Définition
- Les dictionnaires sont des objets qui associent des clés et des valeurs. Les clés et les valeurs peuvent être n’importe quel type de donnée. Chaque clé n’apparaît qu’une seule fois dans le dictionnaire, mais vous pouvez utiliser la même valeur plusieurs fois pour plusieurs clés.
- Le dictionnaire est l’un des quatre types de collection proposés par Dart.
- En Dart, les dictionnaires sont appelés « maps« . Un map est une collection d’éléments qui associe des clés à des valeurs. Chaque élément d’un map est constitué d’une paire clé-valeur. Les maps sont couramment utilisés pour stocker et récupérer des données associées à des clés.
- Il y a un nombre fini de clés dans un dictionnaire et chaque clé a exactement une valeur qui lui est associée. Les dictionnaires, ainsi que leurs clés et leurs valeurs, peuvent être itérés
-
Création et initialisation d’un Map (dictionnaire) en Dart
- Pour créer un map en Dart, vous pouvez utiliser la notation littérale ou le constructeur Map.
-
Création d’un dictionnaire en Dart
-
La notation littérale
- La notation littérale est la méthode la plus courante pour créer un map :
-
Le constructeur Map
- Pour créer un map (dictionnaire) en Dart en utilisant le constructeur Map, vous spécifiez les paires clé-valeur à l’intérieur de ce constructeur. Voici comment vous pouvez créer un map en utilisant le constructeur Map :
- Dans ces exemples :
- Map<String, int> notes crée un map vide où les clés sont de type String et les valeurs sont de type int.
- Map<String, String> capitales crée un map avec des paires clé-valeur initiales à partir d’un autre map.
// Création d'un map vide
Map<String, int> notes = {};
// Création d'un map avec des paires clé-valeur
Map<String, String> capitales = {
'France': 'Paris',
'États-Unis': 'Washington, D.C.',
'Allemagne': 'Berlin',
};
// Création d'un map vide
Map<String, int> notes = Map<String, int>();
// Création d'un map avec des paires clé-valeur
Map<String, String> capitales = Map<String, String>.from({
'France': 'Paris',
'États-Unis': 'Washington, D.C.',
'Allemagne': 'Berlin',
});
Initialisation d’un map (dictionnaire)
- En Dart, vous pouvez initialiser un map (dictionnaire) de deux manières principales : à la déclaration (lorsque vous créez le map) ou après la déclaration (lorsque le map est déjà créé). Voici comment cela fonctionne pour chaque cas :
-
Initialisation à la déclaration :
- Lorsque vous créez un map, vous pouvez le remplir avec des paires clé-valeur dès le départ en utilisant la notation littérale de map. Voici un exemple :
- Dans cet exemple, le map ages est créé et initialisé avec des paires clé-valeur au moment de la déclaration.
-
Initialisation après la déclaration :
- Vous pouvez créer un map vide d’abord, puis ajouter des paires clé-valeur ultérieurement. Voici comment cela fonctionne :
- Dans cet exemple, le map ages est créé vide, puis des paires clé-valeur sont ajoutées après la déclaration.
// Initialisation à la déclaration
Map ages = {
'Alice': 30,
'Bob': 25,
'Charlie': 40,
};
// Création d'un map vide
Map ages = Map();
// Initialisation après la déclaration
ages['Alice'] = 30;
ages['Bob'] = 25;
ages['Charlie'] = 40;
Vous pouvez choisir la méthode qui convient le mieux à votre situation. L’initialisation à la déclaration est pratique lorsque vous avez déjà les données disponibles et que vous voulez les ajouter au map dès le départ. L’initialisation après la déclaration est utile lorsque vous devez construire le map progressivement ou lorsque vous n’avez pas toutes les données au moment de la déclaration initiale.
Accéder à la valeur associée à une clé dans un map
- En Dart, vous pouvez accéder à la valeur associée à une clé dans un map en utilisant la clé entre crochets ([]). Voici comment cela fonctionne, avec des exemples supplémentaires :
-
Accès à la valeur d’une clé:
- Pour accéder à la valeur associée à une clé dans un map, utilisez la clé comme index entre crochets :
Map ages = {
'Alice': 30,
'Bob': 25,
'Charlie': 40,
};
int ageAlice = ages['Alice']; // Accède à la valeur associée à la clé 'Alice'
print("L'âge d'Alice est $ageAlice.");
Vérification de l’existence de la clé :
- Avant d’accéder à la valeur d’une clé, il est recommandé de vérifier si la clé existe dans le map. Vous pouvez le faire en utilisant la méthode containsKey() :
if (ages.containsKey('Bob')) {
int ageBob = ages['Bob'];
print("L'âge de Bob est $ageBob.");
} else {
print("La clé 'Bob' n'existe pas dans le map.");
}
Valeur par défaut en cas d’absence de clé
- Vous pouvez également spécifier une valeur par défaut à retourner si la clé n’existe pas dans le map en utilisant l’opérateur de récupération (??) :
int ageDavid = ages['David'] ?? 0; // Si 'David' n'existe pas, renvoie 0
print("L'âge de David est $ageDavid.");
Modification e Suppression des éléments d’un Map (dictionnaire)
- Vous pouvez modifier les éléments d’un map (dictionnaire) en Dart en utilisant plusieurs méthodes. Voici quelques-unes des méthodes couramment utilisées pour effectuer des modifications dans un map :
- Supposons que vous ayez un map appelé personnes avec des informations sur les âges des personnes :
Map<String, int> personnes = {
'Alice': 30,
'Bob': 25,
'Charlie': 40,
};
-
Modification directe par clé :
- Pour modifier directement la valeur associée à une clé dans un map, vous utilisez la clé pour accéder à l’élément et lui attribuez une nouvelle valeur :
- Après cette opération, l’âge de Bob dans le map est mis à jour pour être de 26.
-
Utilisation de la méthode
update()
: - La méthode
update()
vous permet de mettre à jour la valeur associée à une clé en utilisant une fonction qui prend l’ancienne valeur comme argument et renvoie la nouvelle valeur. Par exemple, vous pouvez ajouter 1 à l’âge de Charlie comme ceci : - Après cette opération, l’âge de Charlie dans le map sera de 41.
-
Utilisation de la méthode putIfAbsent() :
- La méthode
putIfAbsent()
permet de définir une valeur pour une clé si elle n’existe pas encore dans le map. Par exemple, si vous souhaitez ajouter une personne nommée David avec un âge de 35, vous pouvez le faire comme suit : - Si la clé ‘David’ n’existait pas, elle sera ajoutée avec l’âge 35.
-
Suppression d’éléments :
- Pour supprimer un élément (une paire clé-valeur) d’un map, vous pouvez utiliser la méthode
remove()
en spécifiant la clé de l’élément à supprimer : - Ces méthodes vous permettent de modifier les éléments d’un map selon vos besoins. Que ce soit pour ajouter, mettre à jour ou supprimer des éléments, les maps en Dart offrent de nombreuses options pour gérer les données associées à des clés.
personnes['Bob'] = 26; // Modification de l'âge de Bob
personnes.update('Charlie', (ancienAge) => ancienAge + 1);
personnes.putIfAbsent('David', () => 35);
personnes.remove('Alice'); // Supprime la paire associée à la clé 'Alice'