Menu
Coddy logo textTech

Aggiungere a una lista: insert

Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 4 di 65.

Quando devi aggiungere un elemento in una posizione specifica di una lista, il metodo insert() ti permette di controllare con precisione dove inserire il nuovo elemento. A differenza del metodo add(), che aggiunge sempre gli elementi alla fine di una lista, insert() ti permette di inserire un elemento in qualsiasi posizione tu scelga.

Il metodo insert() accetta due parametri: la posizione dell’indice in cui vuoi inserire l’elemento e l’elemento stesso. Quando inserisci un elemento, tutti gli elementi esistenti in quella posizione e oltre si spostano di una posizione verso destra.

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

// Inserisci una nuova attività all'inizio (indice 0)
tasks.insert(0, 'Check emails');

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

Questo metodo è particolarmente utile quando l'ordine degli elementi è importante, ad esempio negli elenchi di priorità, negli orari o in qualsiasi situazione in cui sia necessario mantenere una sequenza specifica. La possibilità di inserire elementi in qualsiasi posizione rende insert() uno strumento potente per gestire raccolte ordinate.

challenge icon

Sfida

Facile

Crea un programma che gestisca un sistema di attività prioritarie inserendo le attività urgenti in posizioni specifiche di un elenco di attività esistente. Il programma deve:

  1. Leggere un input di tipo stringa che rappresenta il nome dell’elenco di attività
  2. Leggere più input di tipo stringa che rappresentano le attività esistenti (l’input terminerà quando riceverai una stringa vuota)
  3. Leggere un input di tipo stringa che rappresenta un’attività urgente da inserire
  4. Leggere un input di tipo intero che rappresenta la posizione in cui inserire l’attività urgente
  5. Usare il metodo insert() per aggiungere l’attività urgente nella posizione specificata
  6. Stampare l’elenco di attività aggiornato esattamente nel formato mostrato di seguito

Ad esempio, se il nome dell’elenco di attività è "Work Schedule", le attività esistenti sono "Review documents", "Team meeting", "Submit report", l’attività urgente è "Client call" e la posizione è 1, il programma deve produrre questo output:

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

Se il nome dell’elenco di attività è "Daily Goals", le attività esistenti sono "Exercise", "Read book", l’attività urgente è "Buy groceries" e la posizione è 0, il programma deve produrre questo output:

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

Il programma deve usare il metodo insert() per aggiungere l’attività urgente nella posizione specificata. L’input della posizione sarà sempre un indice valido (compreso tra 0 e la lunghezza dell’elenco di attività esistente).

Provalo tu

import 'dart:io';

void main() {
  // Leggi il nome dell'elenco delle attività
  String? taskListName = stdin.readLineSync();
  
  // Leggi le attività esistenti fino a una stringa vuota
  List<String> tasks = [];
  while (true) {
    String? task = stdin.readLineSync();
    if (task == null || task.isEmpty) {
      break;
    }
    tasks.add(task);
  }
  
  // Leggi l'attività urgente e la posizione
  String? urgentTask = stdin.readLineSync();
  int position = int.parse(stdin.readLineSync()!);
  
  // TODO: Scrivi il tuo codice qui sotto
  // Usa il metodo insert() per aggiungere l'attività urgente nella posizione specificata
  
  // Stampa i risultati nel formato richiesto
  print('Task List: $taskListName');
  print('Original tasks: $tasks');
  print('Inserted: $urgentTask at position $position');
  // Stampa le attività aggiornate e il numero totale
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Dart online