Menu
Coddy logo textTech

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.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das ein Restaurant-Menüsystem verwaltet, indem es Gerichte in verschiedenen Kategorien organisiert. Ihr Programm sollte:

  1. Einen String-Input einlesen, der den Restaurantnamen darstellt
  2. Mehrere String-Inputs einlesen, die Gerichtnamen darstellen (die Eingabe endet, wenn Sie einen leeren String erhalten)
  3. Die Methode sort() verwenden, um die Gerichte in alphabetischer Reihenfolge anzuordnen
  4. Das organisierte Menü in dem unten gezeigten exakten Format ausgeben

Wenn zum Beispiel der Restaurantname "Bella Vista" ist und die Gerichte "Pasta Carbonara", "Caesar Salad", "Grilled Salmon", "Apple Pie" sind, sollte Ihr 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 alphabetically

Wenn der Restaurantname "Quick Bites" ist und die Gerichte "Burger", "Pizza", "Sandwich" sind, sollte Ihr Programm Folgendes ausgeben:

Restaurant: Quick Bites
Original menu: [Burger, Pizza, Sandwich]
Sorted menu: [Burger, Pizza, Sandwich]
Total dishes: 3
Status: Menu organized alphabetically

Wenn der Restaurantname "Cafe Corner" ist und nur ein Gericht "Coffee" angegeben wird, sollte Ihr Programm Folgendes ausgeben:

Restaurant: Cafe Corner
Original menu: [Coffee]
Sorted menu: [Coffee]
Total dishes: 1
Status: Menu organized alphabetically

Ihr Programm muss die Methode sort() verwenden, um die Gerichte alphabetisch zu ordnen. Denken Sie daran, dass sort() die ursprüngliche Liste direkt (in place) modifiziert. Sie müssen also eine Kopie der ursprünglichen Liste erstellen, bevor Sie sortieren, wenn Sie sowohl die ursprüngliche als auch die sortierte Version anzeigen möchten.

Spickzettel

Die Methode sort() ordnet Listenelemente in aufsteigender Reihenfolge an und modifiziert die ursprüngliche Liste direkt:

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]

Bei Strings ordnet sort() die Elemente alphabetisch an. Bei Zahlen sortiert sie vom niedrigsten zum höchsten Wert. Da sort() die ursprüngliche Liste direkt modifiziert, erstellen Sie zuerst eine Kopie, wenn Sie die ursprüngliche Reihenfolge beibehalten müssen.

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");
}
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