Trier une liste
Fait partie de la section Logique & Flux du Journey Dart de Coddy. Leçon 7 sur 65.
Lorsque vous avez besoin d'organiser les éléments d'une liste, Dart fournit la méthode sort() qui organise les éléments par ordre croissant. Cette méthode est particulièrement utile pour classer des noms par ordre alphabétique ou des nombres du plus petit au plus grand.
La méthode sort() modifie directement la liste d'origine plutôt que de créer une nouvelle liste triée. Lorsque vous appelez sort() sur une liste, elle réorganise les éléments existants sur place.
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]La méthode sort() fonctionne automatiquement pour les types de données courants comme les chaînes de caractères et les nombres. Pour les chaînes de caractères, elle trie par ordre alphabétique, tandis que pour les nombres, elle trie du plus petit au plus grand. Cela en fait un outil simple pour organiser vos données chaque fois que vous avez besoin d'éléments dans un ordre prévisible.
Défi
FacileCréez un programme qui gère le système de menu d’un restaurant en organisant les plats en différentes catégories. Votre programme doit :
- Lire une entrée de type chaîne représentant le nom du restaurant
- Lire plusieurs entrées de type chaîne représentant les noms des plats (la saisie se terminera lorsque vous recevrez une chaîne vide)
- Utiliser la méthode
sort()pour classer les plats par ordre alphabétique - Afficher le menu organisé exactement dans le format présenté ci-dessous
Par exemple, si le nom du restaurant est "Bella Vista" et que les plats sont "Pasta Carbonara", "Caesar Salad", "Grilled Salmon", "Apple Pie", votre programme doit produire :
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 alphabeticallySi le nom du restaurant est "Quick Bites" et que les plats sont "Burger", "Pizza", "Sandwich", votre programme doit produire :
Restaurant: Quick Bites
Original menu: [Burger, Pizza, Sandwich]
Sorted menu: [Burger, Pizza, Sandwich]
Total dishes: 3
Status: Menu organized alphabeticallySi le nom du restaurant est "Cafe Corner" et qu’un seul plat, "Coffee", est fourni, votre programme doit produire :
Restaurant: Cafe Corner
Original menu: [Coffee]
Sorted menu: [Coffee]
Total dishes: 1
Status: Menu organized alphabeticallyVotre programme doit utiliser la méthode sort() pour classer les plats par ordre alphabétique. N’oubliez pas que sort() modifie la liste d’origine sur place ; vous devrez donc créer une copie de la liste d’origine avant le tri si vous souhaitez afficher les versions originale et triée.
Essayez vous-même
import 'dart:io';
void main() {
// Lire le nom du restaurant
String? restaurantName = stdin.readLineSync();
// Lire les noms des plats jusqu'à une chaîne vide
List<String> dishes = [];
String? dish;
while ((dish = stdin.readLineSync()) != null && dish!.isNotEmpty) {
dishes.add(dish);
}
// TODO: Écrivez votre code ci-dessous
// Créer une copie de la liste originale et la trier
// Calculer le nombre total de plats
// Imprimer le format de sortie requis
// Afficher les résultats
// print("Restaurant: $restaurantName");
// print("Original menu: $dishes");
// print("Sorted menu: $sortedDishes");
// print("Total dishes: $totalDishes");
// print("Status: Menu organized alphabetically");
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Manipulation avancée des listes
Propriétés de liste : first & lastÉtat de la liste : isEmpty & isNotEmptyInverser une listeAjouter à une liste : insertSuppression dans une liste : removeWhereRechercher dans une liste : indexOfTrier une listeMélanger une listeRécapitulatif - Organisateur de liste4Manipulation avancée des Maps
Itérer sur une MapVérifier les clés et les valeursPropriétés de Map : keys & valuesAjout conditionnel : putIfAbsentSupprimer des entrées d'une MapMaps imbriquéesRécapitulatif - Mise à jour de l'inventaire2Opérations fonctionnelles sur les listes
Transformer avec 'map'Filtrer avec 'where'Utiliser '.toList()'Vérifier des conditions avec 'any'Conditions avec 'every'Trouver avec 'firstWhere'Récapitulatif - Filtrage de données3Les Ensembles
Qu'est-ce qu'un ensemble ?Créer un ensembleAjouter et supprimer des éléments d'un ensembleVérifier la présence d'éléments dans un ensembleConvertir une liste en ensembleUnion d'ensemblesIntersection d'ensemblesDifférence d'ensemblesRécapitulatif - Liste d'invités uniquesEntraînez-vous par vous-même : Compilateur Dart en ligne