Menu
Coddy logo textTech

Hinzufügen und Entfernen in Sets

Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 19 von 65.

Sobald Sie über ein Set verfügen, müssen Sie oft dessen Inhalt ändern, indem Sie neue Elemente hinzufügen oder bestehende entfernen. Die Methoden add() und remove() bieten einfache Möglichkeiten, die Elemente Ihres Sets zu verwalten.

Die add()-Methode versucht, ein neues Element in das Set einzufügen. Da Sets jedoch nur eindeutige Werte speichern, passiert einfach nichts, wenn Sie versuchen, ein bereits vorhandenes Element hinzuzufügen – es tritt kein Fehler auf und das Set bleibt unverändert.

Set<String> usernames = {'alice', 'bob', 'charlie'};

usernames.add('diana');     // Fügt 'diana' erfolgreich hinzu
usernames.add('alice');     // Macht nichts - 'alice' existiert bereits

print(usernames);  // {alice, bob, charlie, diana}

Die Methode remove() funktioniert, indem sie den Wert nimmt, den Sie löschen möchten, und ihn aus dem Set entfernt. Wenn das Element nicht im Set vorhanden ist, macht die Methode einfach nichts, was die Verwendung sicher macht, ohne vorher eine Prüfung durchzuführen.

usernames.remove('bob');        // Entfernt 'bob'
usernames.remove('unknown');    // Macht nichts - Element nicht gefunden

print(usernames);  // {alice, charlie, diana}
challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das ein Team-Kollaborationssystem verwaltet, indem es neue Teammitglieder hinzufügt und inaktive Mitglieder aus einem Projektteam entfernt. Ihr Programm sollte:

  1. Einen String-Input einlesen, der den Projektnamen darstellt
  2. Mehrere String-Inputs einlesen, die die ursprünglichen Teammitglieder darstellen (die Eingabe endet, wenn Sie "initial_done" erhalten)
  3. Mehrere String-Inputs einlesen, die neue hinzuzufügende Mitglieder darstellen (die Eingabe endet, wenn Sie "add_done" erhalten)
  4. Mehrere String-Inputs einlesen, die zu entfernende Mitglieder darstellen (die Eingabe endet, wenn Sie "remove_done" erhalten)
  5. Ein Set mit den ursprünglichen Teammitgliedern erstellen
  6. Die Methode add() verwenden, um jedes neue Mitglied zum Team hinzuzufügen
  7. Die Methode remove() verwenden, um jedes angegebene Mitglied aus dem Team zu entfernen
  8. Die Ergebnisse der Teamverwaltung im exakt unten gezeigten Format ausgeben

Wenn zum Beispiel der Projektname "Mobile App Development" ist, die ursprünglichen Mitglieder "Alice", "Bob", "Charlie" sind, die neu hinzuzufügenden Mitglieder "Diana", "Alice", "Eve" sind und die zu entfernenden Mitglieder "Bob", "Frank" sind, sollte Ihr Programm Folgendes ausgeben:

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 successfully

Wenn der Projektname "Website Redesign" ist, die ursprünglichen Mitglieder "John", "Sarah" sind, die neu hinzuzufügenden Mitglieder "Mike", "John" sind und die zu entfernenden Mitglieder "Sarah", "Unknown" sind, sollte Ihr Programm Folgendes ausgeben:

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 successfully

Wenn der Projektname "Data Analysis" ist, die ursprünglichen Mitglieder "Emma" sind, die neu hinzuzufügenden Mitglieder "Tom", "Lisa" sind und das zu entfernende Mitglied "Emma" ist, sollte Ihr Programm Folgendes ausgeben:

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 successfully

Ihr Programm muss demonstrieren, dass die Methode add() nichts bewirkt, wenn versucht wird, ein bereits existierendes Mitglied hinzuzufügen, und die Methode remove() nichts bewirkt, wenn versucht wird, ein nicht existierendes Mitglied zu entfernen. Speichern Sie die Eingabelisten, um zu zeigen, welche Operationen versucht wurden, und zeigen Sie dann den Inhalt des Sets nach jeder Operation an, um die Einzigartigkeit von Sets zu demonstrieren.

Spickzettel

Verwenden Sie add(), um Elemente in ein Set einzufügen. Wenn das Element bereits existiert, passiert nichts:

Set<String> usernames = {'alice', 'bob', 'charlie'};

usernames.add('diana');     // Fügt 'diana' erfolgreich hinzu
usernames.add('alice');     // Macht nichts - 'alice' existiert bereits

print(usernames);  // {alice, bob, charlie, diana}

Verwenden Sie remove(), um Elemente aus einem Set zu löschen. Wenn das Element nicht existiert, passiert nichts:

usernames.remove('bob');        // Entfernt 'bob'
usernames.remove('unknown');    // Macht nichts - Element nicht gefunden

print(usernames);  // {alice, charlie, diana}

Probier es selbst

import 'dart:io';

void main() {
  // Projektname lesen
  String? projectName = stdin.readLineSync();
  
  // Anfängliche Teammitglieder lesen
  List<String> initialMembers = [];
  String? member;
  while ((member = stdin.readLineSync()) != "initial_done") {
    initialMembers.add(member!);
  }
  
  // Neue Mitglieder zum Hinzufügen lesen
  List<String> membersToAdd = [];
  while ((member = stdin.readLineSync()) != "add_done") {
    membersToAdd.add(member!);
  }
  
  // Zu entfernende Mitglieder lesen
  List<String> membersToRemove = [];
  while ((member = stdin.readLineSync()) != "remove_done") {
    membersToRemove.add(member!);
  }
  
  // TODO: Schreiben Sie Ihren Code unten
  // Erstellen Sie ein Set mit den anfänglichen Teammitgliedern
  // Fügen Sie neue Mitglieder mit der Methode add() hinzu
  // Entfernen Sie Mitglieder mit der Methode remove() hinzu
  
  // Geben Sie die Ergebnisse im erforderlichen Format aus
  print("Project: $projectName");
  // Fügen Sie hier die restlichen Print-Anweisungen hinzu
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf