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 à 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 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 des éléments uniques dans la collection finale.

challenge icon

Défi

Facile

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

  1. Lire une entrée de type chaîne représentant le titre de l’article de blog
  2. Lire plusieurs entrées de type chaîne représentant les étiquettes à ajouter à l’article (la saisie se termine lorsque vous recevez "done")
  3. Créer un Set de chaînes pour stocker les étiquettes uniques
  4. Ajouter chaque étiquette au Set (les doublons seront automatiquement supprimés)
  5. 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 successfully

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

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

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

Entraînez-vous par vous-même : Compilateur Dart en ligne