Menu
Coddy logo textTech

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.

challenge icon

Défi

Facile

Cré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 :

  1. Lire une entrée de type chaîne représentant le nom du restaurant
  2. 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)
  3. Utiliser la méthode sort() pour classer les plats par ordre alphabétique
  4. 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 alphabetically

Si 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 alphabetically

Si 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 alphabetically

Votre 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");
}
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Compilateur Dart en ligne