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.
Wyzwanie
ŁatwyUtwó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:
- Wczytać ciąg znaków reprezentujący nazwę listy zadań
- Wczytać wiele ciągów znaków reprezentujących istniejące zadania (wczytywanie zakończy się po otrzymaniu pustego ciągu)
- Wczytać ciąg znaków reprezentujący pilne zadanie do wstawienia
- Wczytać liczbę całkowitą reprezentującą pozycję, na której należy wstawić pilne zadanie
- Użyć metody
insert(), aby dodać pilne zadanie na określonej pozycji - 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: 4Jeś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: 3Twó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ń).
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ę
}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
1Zaawansowana manipulacja listami
Właściwości listy: first i lastStan listy: isEmpty i isNotEmpOdwracanie listyDodawanie do listy: insertUsuwanie z listy: removeWhereWyszukiwanie na liście: indexOfSortowanie listyMieszanie elementów listyPodsumowanie – Organizator listy4Zaawansowane operacje na mapach
Iterowanie po mapieSprawdzanie kluczy i wartościWłaściwości mapy: klucze i wartościDodawanie warunkowe: putIfAbsentUsuwanie wpisów z mapyZagnieżdżone mapyPodsumowanie – aktualizacja stanu magazynowego2Operacje funkcyjne na listach
Przekształcanie za pomocą 'map'Filtrowanie za pomocą 'where'Używanie '.toList()'Sprawdzanie warunków za pomocą 'any'Warunki z użyciem 'every'Wyszukiwanie za pomocą 'firstWhere'Podsumowanie — filtrowanie danych5Projekt: Kalkulator koszyka zakupowego
Konfiguracja projektuDodawanie produktów do koszyka3Zbiory
Czym jest zbiór?Tworzenie zbioruDodawanie i usuwanie elementów ze zbiorówSprawdzanie, czy element znajduje się w zbiorzeKonwersja listy na zbiórSuma zbiorówCzęść wspólna zbiorówRóżnica zbiorówPodsumowanie — unikalna lista gościPoćwicz samodzielnie: Kompilator Dart online