Créer un ensemble
Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 18 sur 65.
Maintenant que vous comprenez ce qu'est un Set, apprenons comment en créer un. En Dart, vous créez un Set en utilisant des accolades {} avec les éléments séparés par des virgules, de la même manière que vous écririez un ensemble mathématique.
Set<String> colors = {'red', 'blue', 'green'};
print(colors); // {red, blue, green}Il est important de ne pas confondre cette syntaxe avec la création d'un Map. Bien que les deux utilisent des accolades, un Set ne contient que des valeurs, tandis qu'un Map contient des paires clé-valeur séparées par des deux-points. Un Set vide doit être explicitement déclaré avec un type pour le distinguer d'un Map vide.
Set<String> emptySet = <String>{}; // Ensemble vide
Map<String, int> emptyMap = {}; // Map videVous pouvez également créer un Set avec des valeurs en double, mais n'oubliez pas que les doublons seront automatiquement supprimés, ne laissant que les éléments uniques dans la collection finale.
Défi
FacileCréez un programme qui gère un système de marquage de blog en créant un Set de balises uniques pour un article de blog. Votre programme doit :
- Lire une chaîne de caractères en entrée représentant le titre de l'article de blog
- Lire plusieurs chaînes de caractères représentant les balises à ajouter à l'article (la saisie se terminera lorsque vous recevrez
"done") - Créer un Set de chaînes de caractères pour stocker les balises uniques
- Ajouter chaque balise au Set (les doublons seront automatiquement supprimés)
- Afficher les résultats du marquage du blog dans le format exact indiqué ci-dessous
Par exemple, si le titre du blog est "Introduction to Dart Programming" et que les balises sont "programming", "dart", "tutorial", "programming", "beginner", votre programme doit afficher :
Blog Post: Introduction to Dart Programming
Tags added: [programming, dart, tutorial, programming, beginner]
Unique tags: {programming, dart, tutorial, beginner}
Total unique tags: 4
Status: Blog post tagged successfullySi le titre du blog est "Web Development Tips" et que les balises sont "web", "html", "css", "web", "html", "javascript", votre programme doit afficher :
Blog Post: Web Development Tips
Tags added: [web, html, css, web, html, javascript]
Unique tags: {web, html, css, javascript}
Total unique tags: 4
Status: Blog post tagged successfullySi le titre du blog est "Getting Started" et que les balises sont "guide", "basics", votre programme doit afficher :
Blog Post: Getting Started
Tags added: [guide, basics]
Unique tags: {guide, basics}
Total unique tags: 2
Status: Blog post tagged successfullyVotre programme doit créer un Set en utilisant la syntaxe des accolades {} et démontrer comment les Sets gèrent automatiquement la suppression des doublons. Stockez d'abord toutes les balises saisies dans une liste pour montrer ce qui a été initialement entré, puis créez le Set pour montrer les balises uniques. Le Set doit afficher son contenu au format standard de Set avec des accolades.
Aide-mémoire
Créez un Set en utilisant des accolades {} avec des éléments séparés par des virgules :
Set<String> colors = {'red', 'blue', 'green'};
print(colors); // {red, blue, green}Pour les Sets vides, déclarez explicitement le type pour les distinguer des Maps vides :
Set<String> emptySet = <String>{}; // Set vide
Map<String, int> emptyMap = {}; // Map videLes Sets suppriment automatiquement les valeurs en double, en ne conservant que les éléments uniques.
Essayez vous-même
import 'dart:io';
void main() {
// Lire le titre de l'article de blog
String? title = stdin.readLineSync();
// Lire les tags jusqu'à ce que "done" soit saisi
List<String> allTags = [];
String? tag;
while ((tag = stdin.readLineSync()) != "done") {
if (tag != null) {
allTags.add(tag);
}
}
// TODO: Écrivez votre code ici
// Créer un Set à partir de la liste de tags pour obtenir les tags uniques
// Calculer le nombre total de tags uniques
// Afficher les résultats
print("Blog Post: $title");
print("Tags added: $allTags");
// Afficher les tags uniques au format Set
// Afficher le nombre total de tags uniques
// Afficher le message de statut
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Manipulation avancée des listes
Propriétés de liste : first & lastÉtat de la liste : isEmpty & isNotEmptyInverser une listeAjouter à une liste : insertSuppression dans une liste : removeWhereRechercher dans une liste : indexOfTrier une listeMélanger une listeRécapitulatif - Organisateur de liste4Manipulation avancée des Maps
Itérer sur une MapVérifier les clés et les valeursPropriétés de Map : keys & valuesAjout conditionnel : putIfAbsentSupprimer des entrées d'une MapMaps imbriquéesRécapitulatif - Mise à jour de l'inventaire2Opérations fonctionnelles sur les listes
Transformer avec 'map'Filtrer avec 'where'Utiliser '.toList()'Vérifier des conditions avec 'any'Conditions avec 'every'Trouver avec 'firstWhere'Récapitulatif - Filtrage de données3Les Ensembles
Qu'est-ce qu'un ensemble ?Créer un ensembleAjouter et supprimer des éléments d'un ensembleVérifier la présence d'éléments dans un ensembleConvertir une liste en ensembleUnion d'ensemblesIntersection d'ensemblesDifférence d'ensemblesRécapitulatif - Liste d'invités uniques