Menu
CoddyTech

Ajouter à une liste : insert

Fait partie de la section Logique & Flux du Journey Dart de Coddy. Leçon 4 sur 65.

Lorsque tu as besoin d’ajouter un élément à une position précise dans une liste, la méthode insert() te permet de contrôler précisément où le nouvel élément sera placé. Contrairement à la méthode add(), qui ajoute toujours les éléments à la fin d’une liste, insert() te permet de placer un élément à la position de ton choix.

La méthode insert() prend deux paramètres : la position de l’index où tu veux insérer l’élément, et l’élément lui-même. Lorsque tu insères un élément, tous les éléments existants à cette position et au-delà se décalent d’une position vers la droite.

List<String> tasks = ['Buy groceries', 'Walk the dog', 'Read a book'];

// Insérer une nouvelle tâche au début (index 0)
tasks.insert(0, 'Check emails');

print(tasks);  // ['Check emails', 'Buy groceries', 'Walk the dog', 'Read a book']

Cette méthode est particulièrement utile lorsque l’ordre des éléments est important, comme dans les listes de priorités, les emplois du temps ou toute situation où tu dois conserver un ordre précis. La possibilité d’insérer à n’importe quelle position fait de insert() un outil puissant pour gérer des collections ordonnées.

challenge icon

Défi

Facile

Crée un programme qui gère un système de tâches prioritaires en insérant les tâches urgentes à des positions précises dans une liste de tâches existante. Ton programme doit :

  1. Lire une entrée de type chaîne représentant le nom de la liste de tâches
  2. Lire plusieurs entrées de type chaîne représentant les tâches existantes (la saisie se termine lorsque tu reçois une chaîne vide)
  3. Lire une entrée de type chaîne représentant une tâche urgente à insérer
  4. Lire une entrée de type entier représentant la position où la tâche urgente doit être insérée
  5. Utiliser la méthode insert() pour ajouter la tâche urgente à la position indiquée
  6. Afficher la liste de tâches mise à jour dans le format exact indiqué ci-dessous

Par exemple, si le nom de la liste de tâches est "Work Schedule", que les tâches existantes sont "Review documents", "Team meeting", "Submit report", que la tâche urgente est "Client call" et que la position est 1, ton programme doit afficher :

Task List: Work Schedule
Original tasks: [Review documents, Team meeting, Submit report]
Inserted: Client call at position 1
Updated tasks: [Review documents, Client call, Team meeting, Submit report]
Total tasks: 4

Si le nom de la liste de tâches est "Daily Goals", que les tâches existantes sont "Exercise", "Read book", que la tâche urgente est "Buy groceries" et que la position est 0, ton programme doit afficher :

Task List: Daily Goals
Original tasks: [Exercise, Read book]
Inserted: Buy groceries at position 0
Updated tasks: [Buy groceries, Exercise, Read book]
Total tasks: 3

Ton programme doit utiliser la méthode insert() pour ajouter la tâche urgente à la position indiquée. La position saisie sera toujours un indice valide (entre 0 et la longueur de la liste de tâches existante).

Essayez vous-même

import 'dart:io';

void main() {
  // Lire le nom de la liste de tâches
  String? taskListName = stdin.readLineSync();
  
  // Lire les tâches existantes jusqu’à une chaîne vide
  List<String> tasks = [];
  while (true) {
    String? task = stdin.readLineSync();
    if (task == null || task.isEmpty) {
      break;
    }
    tasks.add(task);
  }
  
  // Lire la tâche urgente et la position
  String? urgentTask = stdin.readLineSync();
  int position = int.parse(stdin.readLineSync()!);
  
  // Enregistrer les tâches d’origine avant l’insertion
  String originalTasks = tasks.toString();
  
  // TODO: Écrivez votre code ci-dessous
  // Utiliser la méthode insert() pour ajouter la tâche urgente à la position indiquée
  
  // Afficher les résultats au format requis
  print('Task List: $taskListName');
  print('Original tasks: $originalTasks');
  print('Inserted: $urgentTask at position $position');
  // Afficher les tâches mises à jour et leur nombre total
}
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