Menu
Coddy logo textTech

Odwracanie listy

Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 3 z 65.

Czasami trzeba wyświetlić elementy listy w odwrotnej kolejności. Dart udostępnia właściwość .reversed, która tworzy odwrócony widok listy bez zmieniania oryginalnej listy.

Właściwość .reversed zwraca obiekt iterowalny, który przedstawia elementy listy w odwrotnej kolejności. Oznacza to, że ostatni element pojawia się jako pierwszy, przedostatni jako drugi i tak dalej.

List<int> numbers = [1, 2, 3, 4, 5];

var reversedNumbers = numbers.reversed;
print(reversedNumbers);  // (5, 4, 3, 2, 1)

// Oryginalna lista pozostaje bez zmian
print(numbers);  // [1, 2, 3, 4, 5]

Ważnym szczegółem jest to, że .reversed zwraca obiekt iterowalny, a nie listę. Jeśli chcesz pracować z nim jak z listą, możesz przekonwertować go za pomocą .toList(). Ta właściwość jest szczególnie przydatna, gdy chcesz przetwarzać dane w odwrotnej kolejności, zachowując oryginalną listę bez zmian.

challenge icon

Wyzwanie

Łatwy

Utwórz program, który analizuje listę lektur, wyświetlając książki zarówno w pierwotnej, jak i odwróconej kolejności. Twój program powinien:

  1. Wczytać ciąg znaków reprezentujący tytuł listy lektur
  2. Wczytać wiele ciągów znaków reprezentujących tytuły książek (wczytywanie zakończy się po otrzymaniu pustego ciągu znaków)
  3. Użyć właściwości .reversed, aby utworzyć widok listy książek w odwróconej kolejności
  4. Wyświetlić analizę listy lektur w dokładnym formacie pokazanym poniżej

Na przykład, jeśli tytuł listy lektur to "Summer Reading", a książki to "1984", "To Kill a Mockingbird", "The Great Gatsby", program powinien wyświetlić:

Reading List: Summer Reading
Books in original order: (1984, To Kill a Mockingbird, The Great Gatsby)
Books in reversed order: (To Kill a Mockingbird, The Great Gatsby, 1984)
Total books: 3

Jeśli tytuł listy lektur to "Quick Reads" i podano tylko jedną książkę "Animal Farm", program powinien wyświetlić:

Reading List: Quick Reads
Books in original order: (Animal Farm)
Books in reversed order: (Animal Farm)
Total books: 1

Twój program musi używać właściwości .reversed, aby wyświetlać książki w odwrotnej kolejności. Pamiętaj, że .reversed zwraca obiekt iterowalny, więc po jego wyświetleniu zobaczysz nawiasy okrągłe zamiast kwadratowych.

Spróbuj swoich sił

import 'dart:io';

void main() {
  // Wczytaj tytuł listy lektur
  String? title = stdin.readLineSync();
  
  // Wczytuj tytuły książek aż do napotkania pustego ciągu znaków
  List<String> books = [];
  String? book;
  while ((book = stdin.readLineSync()) != null && book!.isNotEmpty) {
    books.add(book);
  }
  
  // TODO: Napisz tutaj swój kod
  // Użyj właściwości .reversed, aby utworzyć widok listy books w odwrotnej kolejności
  // Wyświetl wynik w wymaganym formacie
  
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Dart online