Menu
Coddy logo textTech

Dodawanie do listy: insert

Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 4 z 65.

Gdy chcesz dodać element w określonym miejscu na liście, metoda insert() pozwala precyzyjnie kontrolować, gdzie zostanie umieszczony nowy element. W przeciwieństwie do metody add(), która zawsze dodaje elementy na końcu listy, insert() umożliwia umieszczenie elementu w dowolnym wybranym miejscu.

Metoda insert() przyjmuje dwa parametry: indeks pozycji, w której chcesz wstawić element, oraz sam element. Po wstawieniu elementu wszystkie istniejące elementy na tej pozycji i dalej przesuwają się o jedną pozycję w prawo.

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

// Wstaw nowe zadanie na początku (indeks 0)
tasks.insert(0, 'Check emails');

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

Ta metoda jest szczególnie przydatna, gdy kolejność elementów ma znaczenie, na przykład w listach priorytetów, harmonogramach lub w każdej sytuacji, w której trzeba zachować określoną kolejność. Możliwość wstawiania w dowolnym miejscu sprawia, że insert() jest potężnym narzędziem do zarządzania uporządkowanymi kolekcjami.

challenge icon

Wyzwanie

Łatwy

Utwórz program, który zarządza systemem zadań według priorytetu, wstawiając pilne zadania na określonych pozycjach na istniejącej liście zadań. Twój program powinien:

  1. Wczytać ciąg znaków reprezentujący nazwę listy zadań
  2. Wczytać wiele ciągów znaków reprezentujących istniejące zadania (wczytywanie zakończy się po otrzymaniu pustego ciągu)
  3. Wczytać ciąg znaków reprezentujący pilne zadanie do wstawienia
  4. Wczytać liczbę całkowitą reprezentującą pozycję, na której należy wstawić pilne zadanie
  5. Użyć metody insert(), aby dodać pilne zadanie na określonej pozycji
  6. Wyświetlić zaktualizowaną listę zadań w dokładnie takim formacie, jak pokazano poniżej

Na przykład, jeśli nazwa listy zadań to "Work Schedule", istniejące zadania to "Review documents", "Team meeting", "Submit report", pilne zadanie to "Client call", a pozycja to 1, program powinien wyświetlić:

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

Jeśli nazwa listy zadań to "Daily Goals", istniejące zadania to "Exercise", "Read book", pilne zadanie to "Buy groceries", a pozycja to 0, program powinien wyświetlić:

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

Twój program musi użyć metody insert(), aby dodać pilne zadanie na określonej pozycji. Wprowadzona pozycja zawsze będzie prawidłowym indeksem (od 0 do długości istniejącej listy zadań).

REQUIRED OUTPUT FORMAT:

Spróbuj swoich sił

import 'dart:io';

void main() {
  // Wczytaj nazwę listy zadań
  String? taskListName = stdin.readLineSync();
  
  // Wczytuj istniejące zadania aż do pustego ciągu znaków
  List<String> tasks = [];
  while (true) {
    String? task = stdin.readLineSync();
    if (task == null || task.isEmpty) {
      break;
    }
    tasks.add(task);
  }
  
  // Wczytaj pilne zadanie i pozycję
  String? urgentTask = stdin.readLineSync();
  int position = int.parse(stdin.readLineSync()!);
  
  // TODO: Napisz swój kod poniżej
  // Użyj metody insert(), aby dodać pilne zadanie na wskazanej pozycji
  
  // Wyświetl wyniki w wymaganym formacie
  print('Task List: $taskListName');
  print('Original tasks: $tasks');
  print('Inserted: $urgentTask at position $position');
  // Wyświetl zaktualizowane zadania i ich łączną liczbę
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Dart online