Ein Set erstellen
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 18 von 65.
Da Sie nun verstehen, was ein Set ist, lassen Sie uns lernen, wie man eines erstellt. In Dart erstellen Sie ein Set mit geschweiften Klammern {}, wobei die Elemente durch Kommas getrennt werden, ähnlich wie Sie eine mathematische Menge schreiben würden.
Set<String> colors = {'red', 'blue', 'green'};
print(colors); // {red, blue, green}Es ist wichtig, diese Syntax nicht mit der Erstellung 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 explizit mit einem Typ deklariert werden, um es von einer leeren Map zu unterscheiden.
Set<String> emptySet = <String>{}; // Leeres Set
Map<String, int> emptyMap = {}; // Leere MapSie können auch ein Set mit doppelten Werten erstellen, aber denken Sie daran, dass Duplikate automatisch entfernt werden, sodass nur eindeutige Elemente in der endgültigen Sammlung verbleiben.
Aufgabe
EinfachErstellen Sie ein Programm, das ein Blog-Tagging-System verwaltet, indem es ein Set von eindeutigen Tags für einen Blog-Post erstellt. Ihr Programm sollte:
- Einen String-Input einlesen, der den Titel des Blog-Posts darstellt
- Mehrere String-Inputs einlesen, die Tags darstellen, die dem Post hinzugefügt werden sollen (die Eingabe endet, wenn Sie
"done"erhalten) - Ein Set von Strings erstellen, um die eindeutigen Tags zu speichern
- Jeden Tag zum Set hinzufügen (Duplikate werden automatisch entfernt)
- Die Ergebnisse des Blog-Taggings im exakt unten gezeigten Format ausgeben
Wenn der Blog-Titel beispielsweise "Introduction to Dart Programming" lautet und die Tags "programming", "dart", "tutorial", "programming", "beginner" sind, sollte Ihr 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 Blog-Titel "Web Development Tips" lautet und die Tags "web", "html", "css", "web", "html", "javascript" sind, sollte Ihr 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 Blog-Titel "Getting Started" lautet und die Tags "guide", "basics" sind, sollte Ihr Programm Folgendes ausgeben:
Blog Post: Getting Started
Tags added: [guide, basics]
Unique tags: {guide, basics}
Total unique tags: 2
Status: Blog post tagged successfullyIhr Programm muss ein Set mit der geschweiften Klammer-Syntax {} erstellen und demonstrieren, wie Sets die Entfernung von Duplikaten automatisch handhaben. Speichern Sie alle eingegebenen Tags zuerst in einer Liste, um zu zeigen, was ursprünglich eingegeben wurde, und erstellen Sie dann das Set, um die eindeutigen Tags anzuzeigen. Das Set sollte seinen Inhalt im Standard-Set-Format mit geschweiften Klammern anzeigen.
Spickzettel
Erstellen Sie ein Set mit geschweiften Klammern {}, wobei die Elemente durch Kommas getrennt werden:
Set<String> colors = {'red', 'blue', 'green'};
print(colors); // {red, blue, green}Deklarieren Sie bei leeren Sets explizit den Typ, um sie von leeren Maps zu unterscheiden:
Set<String> emptySet = <String>{}; // Leeres Set
Map<String, int> emptyMap = {}; // Leere MapSets entfernen automatisch doppelte Werte und behalten nur eindeutige Elemente bei.
Probier es selbst
import 'dart:io';
void main() {
// Blogpost-Titel lesen
String? title = stdin.readLineSync();
// Tags lesen, bis „done“ eingegeben wird
List<String> allTags = [];
String? tag;
while ((tag = stdin.readLineSync()) != "done") {
if (tag != null) {
allTags.add(tag);
}
}
// TODO: Schreiben Sie Ihren Code hier
// Erstellen Sie ein Set aus der Tags-Liste, um eindeutige Tags zu erhalten
// Berechnen Sie die Gesamtzahl der eindeutigen Tags
// Ergebnisse ausgeben
print("Blog Post: $title");
print("Tags added: $allTags");
// Eindeutige Tags im Set-Format drucken
// Gesamtzahl der eindeutigen Tags drucken
// Statusmeldung drucken
}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