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

Erstelle ein Programm, das ein Teamzusammenarbeitssystem verwaltet, indem es neue Teammitglieder hinzufügt und inaktive Mitglieder aus einem Projektteam entfernt. Dein Programm sollte:

  1. Eine String-Eingabe lesen, die den Projektnamen darstellt
  2. Mehrere String-Eingaben lesen, die die ursprünglichen Teammitglieder darstellen (die Eingabe endet, sobald du "initial_done" erhältst)
  3. Mehrere String-Eingaben lesen, die neue hinzuzufügende Mitglieder darstellen (die Eingabe endet, sobald du "add_done" erhältst)
  4. Mehrere String-Eingaben lesen, die zu entfernende Mitglieder darstellen (die Eingabe endet, sobald du "remove_done" erhältst)
  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 exakt im unten gezeigten Format ausgeben

Wenn der Projektname beispielsweise "Mobile App Development" lautet, die ursprünglichen Mitglieder "Alice", "Bob", "Charlie" sind, die hinzuzufügenden neuen Mitglieder "Diana", "Alice", "Eve" sind und die zu entfernenden Mitglieder "Bob", "Frank" sind, sollte dein 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" lautet, die ursprünglichen Mitglieder "John", "Sarah" sind, die hinzuzufügenden neuen Mitglieder "Mike", "John" sind und die zu entfernenden Mitglieder "Sarah", "Unknown" sind, sollte dein 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" lautet, das ursprüngliche Mitglied "Emma" ist, die hinzuzufügenden neuen Mitglieder "Tom", "Lisa" sind und das zu entfernende Mitglied "Emma" ist, sollte dein 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

Dein Programm muss zeigen, dass die Methode add() nichts tut, wenn versucht wird, ein bereits vorhandenes Mitglied hinzuzufügen, und dass die Methode remove() nichts tut, wenn versucht wird, ein nicht vorhandenes Mitglied zu entfernen. Speichere die Eingabelisten, um zu zeigen, welche Operationen versucht wurden, und zeige anschließend den Inhalt des Sets nach jeder Operation, um die eindeutige Eigenschaft von Sets zu veranschaulichen.

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

Übe selbstständig: Online-Dart-Compiler