Menu
Coddy logo textTech

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 vide

Vous 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.

challenge icon

Défi

Facile

Cré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 :

  1. Lire une chaîne de caractères en entrée représentant le titre de l'article de blog
  2. Lire plusieurs chaînes de caractères représentant les balises à ajouter à l'article (la saisie se terminera lorsque vous recevrez "done")
  3. Créer un Set de chaînes de caractères pour stocker les balises uniques
  4. Ajouter chaque balise au Set (les doublons seront automatiquement supprimés)
  5. 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 successfully

Si 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 successfully

Si 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 successfully

Votre 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 vide

Les 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
}
quiz iconTestez-vous

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