Eine Liste umkehren
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy. Lektion 3 von 65.
Manchmal musst du die Elemente einer Liste in umgekehrter Reihenfolge anzeigen. Dart stellt die Eigenschaft .reversed bereit, die eine umgekehrte Ansicht deiner Liste erstellt, ohne die ursprüngliche Liste zu verändern.
Die Eigenschaft .reversed gibt ein iterierbares Objekt zurück, das die Listenelemente in umgekehrter Reihenfolge darstellt. Das bedeutet, dass das letzte Element zuerst erscheint, das vorletzte an zweiter Stelle und so weiter.
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// Die ursprüngliche Liste bleibt unverändert
print(numbers); // [1, 2, 3, 4, 5]Ein wichtiges Detail ist, dass .reversed ein Iterable und keine Liste zurückgibt. Wenn du damit als Liste arbeiten musst, kannst du es mit .toList() umwandeln. Diese Eigenschaft ist besonders nützlich, wenn du Daten in umgekehrter Reihenfolge verarbeiten möchtest, während deine ursprüngliche Liste unverändert bleibt.
Aufgabe
EinfachErstelle ein Programm, das eine Leseliste analysiert, indem es die Bücher sowohl in ihrer ursprünglichen als auch in umgekehrter Reihenfolge anzeigt. Dein Programm sollte Folgendes tun:
- Einen String einlesen, der den Titel der Leseliste darstellt
- Mehrere Strings einlesen, die Buchtitel darstellen (die Eingabe endet, wenn du einen leeren String erhältst)
- Die Eigenschaft
.reversedverwenden, um eine umgekehrte Ansicht der Bücherliste zu erstellen - Die Analyse der Leseliste genau im unten gezeigten Format ausgeben
Wenn der Titel der Leseliste beispielsweise "Summer Reading" lautet und die Bücher "1984", "To Kill a Mockingbird", "The Great Gatsby" sind, sollte dein Programm Folgendes ausgeben:
Reading List: Summer Reading
Books in original order: [1984, To Kill a Mockingbird, The Great Gatsby]
Books in reversed order: (The Great Gatsby, To Kill a Mockingbird, 1984)
Total books: 3Wenn der Titel der Leseliste "Quick Reads" lautet und nur ein Buch "Animal Farm" angegeben wird, sollte dein Programm Folgendes ausgeben:
Reading List: Quick Reads
Books in original order: [Animal Farm]
Books in reversed order: (Animal Farm)
Total books: 1Dein Programm muss die Eigenschaft .reversed verwenden, um die Bücher in umgekehrter Reihenfolge anzuzeigen. Denk daran, dass .reversed ein Iterable zurückgibt. Wenn du es also ausgibst, wird es in runden statt in eckigen Klammern angezeigt. Gib books.reversed selbst aus, nicht eine zusammengefügte Zeichenfolge: Bei einer langen Liste kann Darts Ausgabe Elemente in der Mitte durch ... ersetzen, und die Tests erwarten genau diese Darstellung.
Probier es selbst
import 'dart:io';
void main() {
// Lies den Titel der Leseliste ein
String? title = stdin.readLineSync();
// Lies Buchtitel ein, bis eine leere Zeichenkette eingegeben wird
List<String> books = [];
String? book;
while ((book = stdin.readLineSync()) != null && book!.isNotEmpty) {
books.add(book);
}
// TODO: Schreibe hier deinen Code
// Verwende die Eigenschaft .reversed, um eine umgekehrte Ansicht der Liste books zu erstellen
// Gib die Ausgabe im erforderlichen Format 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