Ajouter à une liste : insert
Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 4 sur 65.
Lorsque vous avez besoin d'ajouter un élément à une position spécifique dans une liste, la méthode insert() vous donne un contrôle précis sur l'endroit où le nouvel élément est placé. Contrairement à la méthode add(), qui ajoute toujours des éléments à la fin d'une liste, insert() vous permet de placer un élément à n'importe quelle position que vous choisissez.
La méthode insert() prend deux paramètres : la position de l'index où vous souhaitez insérer l'élément, et l'élément lui-même. Lorsque vous insérez 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 les listes de priorités, les emplois du temps ou toute situation où vous devez maintenir une séquence spécifique. La possibilité d'insérer à n'importe quelle position fait de insert() un outil puissant pour gérer des collections ordonnées.
Défi
FacileCréez un programme qui gère un système de tâches prioritaires en insérant des tâches urgentes à des positions spécifiques dans une liste de tâches existante. Votre programme doit :
- Lire une chaîne de caractères en entrée représentant le nom de la liste de tâches
- Lire plusieurs chaînes de caractères représentant les tâches existantes (la saisie s'arrête lorsque vous recevez une chaîne vide)
- Lire une chaîne de caractères représentant une tâche urgente à insérer
- Lire un entier représentant la position où la tâche urgente doit être insérée
- Utiliser la méthode
insert()pour ajouter la tâche urgente à la position spécifiée - Afficher la liste de tâches mise à jour exactement selon le format illustré 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, votre 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: 4Si 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, votre 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: 3Votre programme doit utiliser la méthode insert() pour ajouter la tâche urgente à la position spécifiée. L'entrée de la position sera toujours un index valide (compris entre 0 et la longueur de la liste de tâches existante).
Aide-mémoire
La méthode insert() vous permet d'ajouter un élément à une position spécifique dans une liste. Elle prend deux paramètres : l'index de la position et l'élément à insérer.
List<String> tasks = ['Buy groceries', 'Walk the dog', 'Read a book'];
// Insérer à l'index 0 (début)
tasks.insert(0, 'Check emails');
print(tasks); // ['Check emails', 'Buy groceries', 'Walk the dog', 'Read a book']Lorsque vous insérez un élément, tous les éléments existants à cette position et au-delà se décalent d'une position vers la droite. Cette méthode est utile pour maintenir des collections ordonnées où la position est importante.
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()!);
// TODO: Écrivez votre code ci-dessous
// Utilisez la méthode insert() pour ajouter la tâche urgente à la position spécifiée
// Afficher les résultats au format requis
print('Task List: $taskListName');
print('Original tasks: $tasks');
print('Inserted: $urgentTask at position $position');
// Afficher les tâches mises à jour et le nombre total
}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 uniques