Ein Set erstellen
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy. Lektion 18 von 65.
Nachdem du nun verstanden hast, was ein Set ist, lernen wir, wie du eines erstellst. In Dart erstellst du ein Set mit geschweiften Klammern {}, wobei die Elemente durch Kommas getrennt werden – ähnlich wie bei einer mathematischen Menge.
Set<String> colors = {'red', 'blue', 'green'};
print(colors); // {red, blue, green}Es ist wichtig, diese Syntax nicht mit dem Erstellen einer Map zu verwechseln. Obwohl beide geschweifte Klammern verwenden, enthält ein Set nur Werte, während eine Map Schlüssel-Wert-Paare enthält, die durch Doppelpunkte getrennt sind. Ein leeres Set muss ausdrücklich mit einem Typ deklariert werden, damit es von einer leeren Map unterschieden werden kann.
Set<String> emptySet = <String>{}; // Leeres Set
Map<String, int> emptyMap = {}; // Leere MapDu kannst auch ein Set mit doppelten Werten erstellen, aber denk daran, dass Duplikate automatisch entfernt werden und in der endgültigen Sammlung nur eindeutige Elemente verbleiben.
Um aus einer vorhandenen Liste ein Set zu erstellen, ruf toSet() auf:
List<String> tags = ['dart', 'web', 'dart'];
Set<String> unique = tags.toSet();
print(unique); // {dart, web}Aufgabe
EinfachErstelle ein Programm, das ein Blog-Tagging-System verwaltet, indem es für einen Blogbeitrag ein Set mit eindeutigen Tags erstellt. Dein Programm sollte:
- Eine Zeichenfolgeneingabe einlesen, die den Titel des Blogbeitrags darstellt
- Mehrere Zeichenfolgeneingaben einlesen, die Tags darstellen, die dem Beitrag hinzugefügt werden sollen (die Eingabe endet, sobald du
"done"erhältst) - Ein Set aus Zeichenfolgen erstellen, um die eindeutigen Tags zu speichern
- Jedes Tag zum Set hinzufügen (Duplikate werden automatisch entfernt)
- Die Ergebnisse des Blog-Taggings exakt im unten gezeigten Format ausgeben
Wenn der Blogtitel beispielsweise "Introduction to Dart Programming" lautet und die Tags "programming", "dart", "tutorial", "programming", "beginner" sind, sollte dein Programm Folgendes ausgeben:
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 successfullyWenn der Blogtitel "Web Development Tips" lautet und die Tags "web", "html", "css", "web", "html", "javascript" sind, sollte dein Programm Folgendes ausgeben:
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 successfullyWenn der Blogtitel "Getting Started" lautet und die Tags "guide", "basics" sind, sollte dein Programm Folgendes ausgeben:
Blog Post: Getting Started
Tags added: [guide, basics]
Unique tags: {guide, basics}
Total unique tags: 2
Status: Blog post tagged successfullyDein Programm muss aus der Tag-Liste ein Set erstellen und zeigen, wie Sets Duplikate automatisch entfernen. Speichere zunächst alle eingegebenen Tags in einer Liste, um zu zeigen, was ursprünglich eingegeben wurde, und erstelle anschließend das Set, um die eindeutigen Tags anzuzeigen. Das Set sollte seinen Inhalt im standardmäßigen Set-Format mit geschweiften Klammern anzeigen.
Probier es selbst
import 'dart:io';
void main() {
// Lies den Titel des Blogbeitrags ein
String? title = stdin.readLineSync();
// Lies Tags ein, bis "done" eingegeben wird
List<String> allTags = [];
String? tag;
while ((tag = stdin.readLineSync()) != "done") {
if (tag != null) {
allTags.add(tag);
}
}
// TODO: Schreibe hier deinen Code
// Erstelle ein Set aus der Tag-Liste, um eindeutige Tags zu erhalten
// Berechne die Gesamtzahl der eindeutigen Tags
// Gib die Ergebnisse aus
print("Blog Post: $title");
print("Tags added: $allTags");
// Gib die eindeutigen Tags im Set-Format aus
// Gib die Gesamtzahl der eindeutigen Tags aus
// Gib die Statusmeldung aus
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Listenmanipulation
Listen-Eigenschaften: first & lastListen-Status: isEmpty & isNotEmptyEine Liste umkehrenHinzufügen zu einer Liste: insertElemente aus Liste entfernen: removeWhereSuchen in einer Liste: indexOfEine Liste sortierenEine Liste mischenZusammenfassung – Listen-Organizer4Fortgeschrittene Map-Manipulation
Über eine Map iterierenPrüfen auf Schlüssel und WerteMap-Eigenschaften: keys & valuesBedingtes Hinzufügen: putIfAbsentEinträge aus einer Map entfernenVerschachtelte MapsRückblick – Inventar-Update7Fortgeschrittene Funktionen
Anonyme FunktionenFunktionen als Argumente übergebenClosures verstehenEinführung in die RekursionRekursive Funktion: CountdownRekursive Funktion: FakultätZusammenfassung – List Processor10Abschluss-Herausforderungen
Herausforderung: NotensortiererHerausforderung: VokalzählerHerausforderung: FizzBuzz2Funktionale Listenoperationen
Transformieren mit 'map'Filtern mit 'where''.toList()' verwendenBedingungen prüfen mit 'any'Bedingungen mit 'every'Suchen mit 'firstWhere'Zusammenfassung – Datenfilterung3Sets
Was ist ein Set?Ein Set erstellenHinzufügen und Entfernen in SetsPrüfen auf Elemente in einem SetEine Liste in ein Set umwandelnSet-VereinigungSet-SchnittmengeSet-DifferenzRückblick – Einzigartige GästelisteÜbe selbstständig: Online-Dart-Compiler