Eine Liste sortieren
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy. Lektion 7 von 65.
Wenn Sie die Elemente in einer Liste organisieren müssen, bietet Dart die Methode sort() an, die Elemente in aufsteigender Reihenfolge anordnet. Diese Methode ist besonders nützlich, um Namen in alphabetischer Reihenfolge oder Zahlen vom kleinsten zum größten Wert zu sortieren.
Die sort()-Methode verändert die ursprüngliche Liste direkt, anstatt eine neue sortierte Liste zu erstellen. Wenn Sie sort() auf einer Liste aufrufen, ordnet sie die vorhandenen Elemente direkt an Ort und Stelle um.
List<String> names = ['Charlie', 'Alice', 'Bob'];
names.sort();
print(names); // ['Alice', 'Bob', 'Charlie']
List<int> scores = [85, 92, 78, 96];
scores.sort();
print(scores); // [78, 85, 92, 96]Die sort()-Methode funktioniert automatisch für gängige Datentypen wie Strings und Zahlen. Bei Strings sortiert sie alphabetisch, während sie bei Zahlen vom niedrigsten zum höchsten Wert sortiert. Dies macht sie zu einem unkomplizierten Werkzeug für die Organisation Ihrer Daten, wann immer Sie Elemente in einer vorhersehbaren Reihenfolge benötigen.
Aufgabe
EinfachErstelle ein Programm, das ein Restaurantmenü verwaltet, indem es Gerichte in verschiedenen Kategorien organisiert. Dein Programm sollte:
- Eine Zeichenfolgeneingabe lesen, die den Namen des Restaurants darstellt
- Mehrere Zeichenfolgeneingaben lesen, die die Namen der Gerichte darstellen (die Eingabe endet, wenn du eine leere Zeichenfolge erhältst)
- Die Methode
sort()verwenden, um die Gerichte alphabetisch zu sortieren - Das organisierte Menü genau im unten gezeigten Format ausgeben
Wenn der Name des Restaurants beispielsweise "Bella Vista" lautet und die Gerichte "Pasta Carbonara", "Caesar Salad", "Grilled Salmon", "Apple Pie" sind, sollte dein Programm Folgendes ausgeben:
Restaurant: Bella Vista
Original menu: [Pasta Carbonara, Caesar Salad, Grilled Salmon, Apple Pie]
Sorted menu: [Apple Pie, Caesar Salad, Grilled Salmon, Pasta Carbonara]
Total dishes: 4
Status: Menu organized alphabeticallyWenn der Name des Restaurants "Quick Bites" lautet und die Gerichte "Burger", "Pizza", "Sandwich" sind, sollte dein Programm Folgendes ausgeben:
Restaurant: Quick Bites
Original menu: [Burger, Pizza, Sandwich]
Sorted menu: [Burger, Pizza, Sandwich]
Total dishes: 3
Status: Menu organized alphabeticallyWenn der Name des Restaurants "Cafe Corner" lautet und nur ein Gericht, "Coffee", angegeben wird, sollte dein Programm Folgendes ausgeben:
Restaurant: Cafe Corner
Original menu: [Coffee]
Sorted menu: [Coffee]
Total dishes: 1
Status: Menu organized alphabeticallyDein Programm muss die Methode sort() verwenden, um die Gerichte alphabetisch zu sortieren. Denke daran, dass sort() die ursprüngliche Liste direkt verändert. Du musst daher vor dem Sortieren eine Kopie der ursprünglichen Liste erstellen, wenn du sowohl die ursprüngliche als auch die sortierte Version anzeigen möchtest.
Probier es selbst
import 'dart:io';
void main() {
// Restaurantnamen lesen
String? restaurantName = stdin.readLineSync();
// Gerichtnamen lesen, bis eine leere Zeichenfolge eingegeben wird
List<String> dishes = [];
String? dish;
while ((dish = stdin.readLineSync()) != null && dish!.isNotEmpty) {
dishes.add(dish);
}
// TODO: Schreiben Sie Ihren Code unten
// Erstellen Sie eine Kopie der ursprünglichen Liste und sortieren Sie diese
// Berechnen Sie die Gesamtzahl der Gerichte
// Geben Sie das erforderliche Ausgabeformat aus
// Ergebnisse ausgeben
// print("Restaurant: $restaurantName");
// print("Original menu: $dishes");
// print("Sorted menu: $sortedDishes");
// print("Total dishes: $totalDishes");
// print("Status: Menu organized alphabetically");
}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