Añadir a una lista: insert
Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 4 de 65.
Cuando necesites añadir un elemento a una posición específica en una lista, el método insert() te ofrece un control preciso sobre dónde va el nuevo elemento. A diferencia del método add(), que siempre añade elementos al final de una lista, insert() te permite colocar un elemento en cualquier posición que elijas.
El método insert() toma dos parámetros: la posición del índice donde deseas insertar el elemento, y el elemento en sí. Cuando insertas un elemento, todos los elementos existentes en esa posición y posteriores se desplazan una posición hacia la derecha.
List<String> tasks = ['Buy groceries', 'Walk the dog', 'Read a book'];
// Insert a new task at the beginning (index 0)
tasks.insert(0, 'Check emails');
print(tasks); // ['Check emails', 'Buy groceries', 'Walk the dog', 'Read a book']Este método es particularmente útil cuando el orden de los elementos importa, como en listas de prioridad, horarios o cualquier situación en la que necesites mantener una secuencia específica. La capacidad de insertar en cualquier posición hace que insert() sea una herramienta poderosa para gestionar colecciones ordenadas.
Desafío
FácilCrea un programa que gestione un sistema de tareas prioritarias insertando tareas urgentes en posiciones específicas de una lista de tareas existente. Tu programa debe:
- Leer una entrada de cadena que represente el nombre de la lista de tareas
- Leer múltiples entradas de cadena que representen tareas existentes (la entrada terminará cuando recibas una cadena vacía)
- Leer una entrada de cadena que represente una tarea urgente a insertar
- Leer una entrada entera que represente la posición donde se debe insertar la tarea urgente
- Usar el método
insert()para añadir la tarea urgente en la posición especificada - Imprimir la lista de tareas actualizada en el formato exacto que se muestra a continuación
Por ejemplo, si el nombre de la lista de tareas es "Work Schedule", las tareas existentes son "Review documents", "Team meeting", "Submit report", la tarea urgente es "Client call", y la posición es 1, tu programa debería mostrar:
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 el nombre de la lista de tareas es "Daily Goals", las tareas existentes son "Exercise", "Read book", la tarea urgente es "Buy groceries", y la posición es 0, tu programa debería mostrar:
Task List: Daily Goals
Original tasks: [Exercise, Read book]
Inserted: Buy groceries at position 0
Updated tasks: [Buy groceries, Exercise, Read book]
Total tasks: 3Tu programa debe usar el método insert() para añadir la tarea urgente en la posición especificada. La entrada de la posición siempre será un índice válido (entre 0 y la longitud de la lista de tareas existente).
Hoja de referencia
El método insert() te permite añadir un elemento en una posición específica de una lista. Toma dos parámetros: la posición del índice y el elemento a insertar.
List<String> tasks = ['Buy groceries', 'Walk the dog', 'Read a book'];
// Insertar en el índice 0 (al principio)
tasks.insert(0, 'Check emails');
print(tasks); // ['Check emails', 'Buy groceries', 'Walk the dog', 'Read a book']Cuando insertas un elemento, todos los elementos existentes en esa posición y posteriores se desplazan una posición hacia la derecha. Este método es útil para mantener colecciones ordenadas donde la posición es importante.
Pruébalo tú mismo
import 'dart:io';
void main() {
// Leer el nombre de la lista de tareas
String? taskListName = stdin.readLineSync();
// Leer las tareas existentes hasta encontrar una cadena vacía
List<String> tasks = [];
while (true) {
String? task = stdin.readLineSync();
if (task == null || task.isEmpty) {
break;
}
tasks.add(task);
}
// Leer la tarea urgente y la posición
String? urgentTask = stdin.readLineSync();
int position = int.parse(stdin.readLineSync()!);
// TODO: Escribe tu código a continuación
// Usa el método insert() para añadir la tarea urgente en la posición especificada
// Imprimir los resultados en el formato requerido
print('Task List: $taskListName');
print('Original tasks: $tasks');
print('Inserted: $urgentTask at position $position');
// Imprimir las tareas actualizadas y el recuento total
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Manipulación avanzada de listas
Propiedades de listas: first y lastEstado de la lista: isEmpty y isNotEmptyInvertir una listaAñadir a una lista: insertEliminación en listas: removeWhereBúsqueda en una lista: indexOfOrdenar una listaMezclar una listaResumen - Organizador de listas4Manipulación avanzada de mapas
Iterar sobre un mapaComprobación de claves y valoresPropiedades del mapa: keys y valuesAdición condicional: putIfAbsentEliminar entradas de un mapaMapas anidadosResumen - Actualización de inventario2Operaciones funcionales con listas
Transformar con 'map'Filtrar con 'where'Uso de '.toList()'Comprobar condiciones con 'any'Condiciones con 'every'Búsqueda con 'firstWhere'Resumen - Filtrado de datos5Proyecto: Calculadora de carrito de compras
Configuración del proyectoAgregar artículos al carrito3Conjuntos
¿Qué es un Conjunto?Crear un ConjuntoAñadir y eliminar elementos de un ConjuntoComprobar elementos en un ConjuntoConvertir una lista en un ConjuntoUnión de ConjuntosIntersección de ConjuntosDiferencia de ConjuntosResumen - Lista de invitados única