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 à 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'une Map. Bien que les deux utilisent des accolades, un Set ne contient que des valeurs, tandis qu'une 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'une 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 des éléments uniques dans la collection finale.
Défi
FacileCréez un programme qui gère un système d’étiquetage de blog en créant un Set d’étiquettes uniques pour un article de blog. Votre programme doit :
- Lire une entrée de type chaîne représentant le titre de l’article de blog
- Lire plusieurs entrées de type chaîne représentant les étiquettes à ajouter à l’article (la saisie se termine lorsque vous recevez
"done") - Créer un Set de chaînes pour stocker les étiquettes uniques
- Ajouter chaque étiquette au Set (les doublons seront automatiquement supprimés)
- Afficher les résultats de l’étiquetage du blog dans le format exact indiqué ci-dessous
Par exemple, si le titre du blog est "Introduction to Dart Programming" et que les étiquettes sont "programming", "dart", "tutorial", "programming", "beginner", votre programme doit produire :
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 étiquettes sont "web", "html", "css", "web", "html", "javascript", votre programme doit produire :
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 étiquettes sont "guide", "basics", votre programme doit produire :
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 à l’aide de la syntaxe avec accolades {} et montrer comment les Sets gèrent automatiquement la suppression des doublons. Stockez d’abord toutes les étiquettes saisies dans une liste afin d’afficher ce qui a été initialement saisi, puis créez le Set pour afficher les étiquettes uniques. Le Set doit afficher son contenu au format standard d’un Set, avec des accolades.
Essayez vous-même
import 'dart:io';
void main() {
// Lire le titre de l'article de blog
String? title = stdin.readLineSync();
// Lire les étiquettes 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 d'étiquettes pour obtenir des étiquettes uniques
// Calculer le nombre total d'étiquettes uniques
// Afficher les résultats
print("Blog Post: $title");
print("Tags added: $allTags");
// Afficher les étiquettes uniques au format Set
// Afficher le nombre total d'étiquettes 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 uniquesEntraînez-vous par vous-même : Compilateur Dart en ligne