Sortowanie listy
Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 7 z 65.
Gdy musisz uporządkować elementy na liście, Dart udostępnia metodę sort(), która układa elementy w kolejności rosnącej. Ta metoda jest szczególnie przydatna do sortowania imion w kolejności alfabetycznej lub liczb od najmniejszej do największej.
Metoda sort() modyfikuje oryginalną listę bezpośrednio, zamiast tworzyć nową, posortowaną listę. Gdy wywołujesz metodę sort() na liście, przestawia ona istniejące elementy w miejscu.
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]Metoda sort() działa automatycznie w przypadku popularnych typów danych, takich jak ciągi znaków i liczby. Ciągi znaków sortuje alfabetycznie, a liczby od najmniejszej do największej. Dzięki temu jest to proste narzędzie do porządkowania danych, gdy potrzebujesz elementów w przewidywalnej kolejności.
Wyzwanie
ŁatwyUtwórz program, który zarządza menu restauracji, porządkując dania w różnych kategoriach. Twój program powinien:
- Odczytać dane wejściowe w postaci ciągu znaków reprezentującego nazwę restauracji
- Odczytać wiele ciągów znaków reprezentujących nazwy dań (wprowadzanie danych zakończy się po otrzymaniu pustego ciągu znaków)
- Użyć metody
sort(), aby uporządkować dania alfabetycznie - Wypisać uporządkowane menu w dokładnym formacie pokazanym poniżej
Na przykład, jeśli nazwą restauracji jest "Bella Vista", a daniami są "Pasta Carbonara", "Caesar Salad", "Grilled Salmon", "Apple Pie", program powinien wypisać:
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 alphabeticallyJeśli nazwą restauracji jest "Quick Bites", a daniami są "Burger", "Pizza", "Sandwich", program powinien wypisać:
Restaurant: Quick Bites
Original menu: [Burger, Pizza, Sandwich]
Sorted menu: [Burger, Pizza, Sandwich]
Total dishes: 3
Status: Menu organized alphabeticallyJeśli nazwą restauracji jest "Cafe Corner" i podano tylko jedno danie "Coffee", program powinien wypisać:
Restaurant: Cafe Corner
Original menu: [Coffee]
Sorted menu: [Coffee]
Total dishes: 1
Status: Menu organized alphabeticallyTwój program musi używać metody sort(), aby uporządkować dania alfabetycznie. Pamiętaj, że sort() modyfikuje oryginalną tablicę w miejscu, więc jeśli chcesz wyświetlić zarówno oryginalną, jak i posortowaną wersję, przed sortowaniem musisz utworzyć kopię oryginalnej tablicy.
Spróbuj swoich sił
import 'dart:io';
void main() {
// Wczytaj nazwę restauracji
String? restaurantName = stdin.readLineSync();
// Wczytuj nazwy dań aż do pustego ciągu znaków
List<String> dishes = [];
String? dish;
while ((dish = stdin.readLineSync()) != null && dish!.isNotEmpty) {
dishes.add(dish);
}
// TODO: Napisz swój kod poniżej
// Utwórz kopię oryginalnej listy i ją posortuj
// Oblicz łączną liczbę dań
// Wypisz dane w wymaganym formacie
// Wyświetl wyniki
// print("Restaurant: $restaurantName");
// print("Original menu: $dishes");
// print("Sorted menu: $sortedDishes");
// print("Total dishes: $totalDishes");
// print("Status: Menu organized alphabetically");
}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
1Zaawansowana manipulacja listami
Właściwości listy: first i lastStan listy: isEmpty i isNotEmpOdwracanie listyDodawanie do listy: insertUsuwanie z listy: removeWhereWyszukiwanie na liście: indexOfSortowanie listyMieszanie elementów listyPodsumowanie – Organizator listy4Zaawansowane operacje na mapach
Iterowanie po mapieSprawdzanie kluczy i wartościWłaściwości mapy: klucze i wartościDodawanie warunkowe: putIfAbsentUsuwanie wpisów z mapyZagnieżdżone mapyPodsumowanie – aktualizacja stanu magazynowego2Operacje funkcyjne na listach
Przekształcanie za pomocą 'map'Filtrowanie za pomocą 'where'Używanie '.toList()'Sprawdzanie warunków za pomocą 'any'Warunki z użyciem 'every'Wyszukiwanie za pomocą 'firstWhere'Podsumowanie — filtrowanie danych5Projekt: Kalkulator koszyka zakupowego
Konfiguracja projektuDodawanie produktów do koszyka3Zbiory
Czym jest zbiór?Tworzenie zbioruDodawanie i usuwanie elementów ze zbiorówSprawdzanie, czy element znajduje się w zbiorzeKonwersja listy na zbiórSuma zbiorówCzęść wspólna zbiorówRóżnica zbiorówPodsumowanie — unikalna lista gościPoćwicz samodzielnie: Kompilator Dart online