Ajouter et supprimer des éléments d'un ensemble
Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 19 sur 65.
Une fois que vous avez un Set, vous aurez souvent besoin de modifier son contenu en ajoutant de nouveaux éléments ou en supprimant ceux existants. Les méthodes add() et remove() offrent des moyens simples de gérer les éléments de votre ensemble.
La méthode add() tente d'insérer un nouvel élément dans l'ensemble. Cependant, comme les ensembles ne stockent que des valeurs uniques, si vous essayez d'ajouter un élément qui existe déjà, la méthode ne fait tout simplement rien : aucune erreur ne se produit et l'ensemble reste inchangé.
Set<String> usernames = {'alice', 'bob', 'charlie'};
usernames.add('diana'); // Ajoute 'diana' avec succès
usernames.add('alice'); // Ne fait rien - 'alice' existe déjà
print(usernames); // {alice, bob, charlie, diana}La méthode remove() fonctionne en prenant la valeur que vous souhaitez supprimer et en la retirant de l'ensemble. Si l'élément n'existe pas dans l'ensemble, la méthode ne fait tout simplement rien, ce qui permet de l'utiliser en toute sécurité sans vérification préalable.
usernames.remove('bob'); // Supprime 'bob'
usernames.remove('unknown'); // Ne fait rien - élément non trouvé
print(usernames); // {alice, charlie, diana}Défi
FacileCréez un programme qui gère un système de collaboration d'équipe en ajoutant de nouveaux membres et en supprimant les membres inactifs d'une équipe de projet. Votre programme doit :
- Lire une chaîne de caractères en entrée représentant le nom du projet
- Lire plusieurs chaînes de caractères représentant les membres initiaux de l'équipe (la saisie se terminera lorsque vous recevrez
"initial_done") - Lire plusieurs chaînes de caractères représentant les nouveaux membres à ajouter (la saisie se terminera lorsque vous recevrez
"add_done") - Lire plusieurs chaînes de caractères représentant les membres à supprimer (la saisie se terminera lorsque vous recevrez
"remove_done") - Créer un Set avec les membres initiaux de l'équipe
- Utiliser la méthode
add()pour ajouter chaque nouveau membre à l'équipe - Utiliser la méthode
remove()pour supprimer chaque membre spécifié de l'équipe - Afficher les résultats de la gestion d'équipe dans le format exact indiqué ci-dessous
Par exemple, si le nom du projet est "Mobile App Development", que les membres initiaux sont "Alice", "Bob", "Charlie", que les nouveaux membres à ajouter sont "Diana", "Alice", "Eve", et que les membres à supprimer sont "Bob", "Frank", votre programme doit afficher :
Project: Mobile App Development
Initial team: {Alice, Bob, Charlie}
Adding new members: [Diana, Alice, Eve]
After adding members: {Alice, Bob, Charlie, Diana, Eve}
Removing members: [Bob, Frank]
Final team: {Alice, Charlie, Diana, Eve}
Team size: 4
Status: Team updated successfullySi le nom du projet est "Website Redesign", que les membres initiaux sont "John", "Sarah", que les nouveaux membres à ajouter sont "Mike", "John", et que les membres à supprimer sont "Sarah", "Unknown", votre programme doit afficher :
Project: Website Redesign
Initial team: {John, Sarah}
Adding new members: [Mike, John]
After adding members: {John, Sarah, Mike}
Removing members: [Sarah, Unknown]
Final team: {John, Mike}
Team size: 2
Status: Team updated successfullySi le nom du projet est "Data Analysis", que les membres initiaux sont "Emma", que les nouveaux membres à ajouter sont "Tom", "Lisa", et que le membre à supprimer est "Emma", votre programme doit afficher :
Project: Data Analysis
Initial team: {Emma}
Adding new members: [Tom, Lisa]
After adding members: {Emma, Tom, Lisa}
Removing members: [Emma]
Final team: {Tom, Lisa}
Team size: 2
Status: Team updated successfullyVotre programme doit démontrer que la méthode add() ne fait rien lorsqu'on essaie d'ajouter un membre qui existe déjà, et que la méthode remove() ne fait rien lorsqu'on essaie de supprimer un membre qui n'existe pas. Stockez les listes d'entrée pour montrer quelles opérations ont été tentées, puis affichez le contenu du Set après chaque opération pour démontrer la nature unique des Sets.
Aide-mémoire
Utilisez add() pour insérer des éléments dans un Set. Si l'élément existe déjà, rien ne se passe :
Set<String> usernames = {'alice', 'bob', 'charlie'};
usernames.add('diana'); // Ajoute 'diana' avec succès
usernames.add('alice'); // Ne fait rien - 'alice' existe déjà
print(usernames); // {alice, bob, charlie, diana}Utilisez remove() pour supprimer des éléments d'un Set. Si l'élément n'existe pas, rien ne se passe :
usernames.remove('bob'); // Supprime 'bob'
usernames.remove('unknown'); // Ne fait rien - élément non trouvé
print(usernames); // {alice, charlie, diana}Essayez vous-même
import 'dart:io';
void main() {
// Lire le nom du projet
String? projectName = stdin.readLineSync();
// Lire les membres initiaux de l'équipe
List<String> initialMembers = [];
String? member;
while ((member = stdin.readLineSync()) != "initial_done") {
initialMembers.add(member!);
}
// Lire les nouveaux membres à ajouter
List<String> membersToAdd = [];
while ((member = stdin.readLineSync()) != "add_done") {
membersToAdd.add(member!);
}
// Lire les membres à retirer
List<String> membersToRemove = [];
while ((member = stdin.readLineSync()) != "remove_done") {
membersToRemove.add(member!);
}
// TODO: Écrivez votre code ci-dessous
// Créer un Set avec les membres initiaux de l'équipe
// Ajouter les nouveaux membres en utilisant la méthode add()
// Retirer les membres en utilisant la méthode remove()
// Afficher les résultats au format requis
print("Project: $projectName");
// Ajouter les instructions d'affichage restantes ici
}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