Hinzufügen zu einer Liste: insert
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 4 von 65.
Wenn Sie ein Element an einer bestimmten Position in einer Liste hinzufügen müssen, bietet Ihnen die Methode insert() eine präzise Kontrolle darüber, wohin das neue Element kommt. Im Gegensatz zur Methode add(), die Elemente immer am Ende einer Liste hinzufügt, ermöglicht es Ihnen insert(), ein Element an einer beliebigen von Ihnen gewählten Position zu platzieren.
Die Methode insert() nimmt zwei Parameter entgegen: die Indexposition, an der Sie das Element einfügen möchten, und das Element selbst. Wenn Sie ein Element einfügen, verschieben sich alle vorhandenen Elemente an dieser Position und dahinter um eine Position nach rechts.
List<String> tasks = ['Buy groceries', 'Walk the dog', 'Read a book'];
// Füge eine neue Aufgabe am Anfang ein (Index 0)
tasks.insert(0, 'Check emails');
print(tasks); // ['Check emails', 'Buy groceries', 'Walk the dog', 'Read a book']Diese Methode ist besonders nützlich, wenn die Reihenfolge der Elemente eine Rolle spielt, wie zum Beispiel bei Prioritätslisten, Zeitplänen oder in jeder Situation, in der Sie eine bestimmte Sequenz beibehalten müssen. Die Möglichkeit, an jeder beliebigen Position einzufügen, macht insert() zu einem leistungsstarken Werkzeug für die Verwaltung geordneter Sammlungen.
Aufgabe
EinfachErstellen Sie ein Programm, das ein Prioritätsaufgabensystem verwaltet, indem es dringende Aufgaben an bestimmten Positionen in einer vorhandenen Aufgabenliste einfügt. Ihr Programm sollte:
- Einen String einlesen, der den Namen der Aufgabenliste darstellt
- Mehrere Strings einlesen, die vorhandene Aufgaben darstellen (die Eingabe endet, wenn Sie einen leeren String erhalten)
- Einen String einlesen, der eine einzufügende dringende Aufgabe darstellt
- Einen Integer einlesen, der die Position darstellt, an der die dringende Aufgabe eingefügt werden soll
- Die Methode
insert()verwenden, um die dringende Aufgabe an der angegebenen Position hinzuzufügen - Die aktualisierte Aufgabenliste in dem unten gezeigten exakten Format ausgeben
Wenn zum Beispiel der Name der Aufgabenliste "Work Schedule" ist, die vorhandenen Aufgaben "Review documents", "Team meeting", "Submit report" sind, die dringende Aufgabe "Client call" ist und die Position 1 ist, sollte Ihr Programm Folgendes ausgeben:
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: 4Wenn der Name der Aufgabenliste "Daily Goals" ist, die vorhandenen Aufgaben "Exercise", "Read book" sind, die dringende Aufgabe "Buy groceries" ist und die Position 0 ist, sollte Ihr Programm Folgendes ausgeben:
Task List: Daily Goals
Original tasks: [Exercise, Read book]
Inserted: Buy groceries at position 0
Updated tasks: [Buy groceries, Exercise, Read book]
Total tasks: 3Ihr Programm muss die Methode insert() verwenden, um die dringende Aufgabe an der angegebenen Position hinzuzufügen. Die Positionseingabe wird immer ein gültiger Index sein (zwischen 0 und der Länge der vorhandenen Aufgabenliste).
Spickzettel
Die Methode insert() ermöglicht es Ihnen, ein Element an einer bestimmten Position in einer Liste hinzuzufügen. Sie nimmt zwei Parameter entgegen: die Indexposition und das einzufügende Element.
List<String> tasks = ['Buy groceries', 'Walk the dog', 'Read a book'];
// An Index 0 einfügen (Anfang)
tasks.insert(0, 'Check emails');
print(tasks); // ['Check emails', 'Buy groceries', 'Walk the dog', 'Read a book']Wenn Sie ein Element einfügen, verschieben sich alle vorhandenen Elemente an dieser Position und dahinter um eine Position nach rechts. Diese Methode ist nützlich, um geordnete Sammlungen zu verwalten, bei denen die Position wichtig ist.
Probier es selbst
import 'dart:io';
void main() {
// Aufgabenlistenname lesen
String? taskListName = stdin.readLineSync();
// Bestehende Aufgaben lesen bis zu einer leeren Zeichenfolge
List<String> tasks = [];
while (true) {
String? task = stdin.readLineSync();
if (task == null || task.isEmpty) {
break;
}
tasks.add(task);
}
// Dringende Aufgabe und Position lesen
String? urgentTask = stdin.readLineSync();
int position = int.parse(stdin.readLineSync()!);
// TODO: Schreiben Sie Ihren Code unten
// Verwenden Sie die insert()-Methode, um die dringende Aufgabe an der angegebenen Position hinzuzufügen
// Ergebnisse im erforderlichen Format ausgeben
print('Task List: $taskListName');
print('Original tasks: $tasks');
print('Inserted: $urgentTask at position $position');
// Aktualisierte Aufgaben und Gesamtzahl ausgeben
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Listenmanipulation
Listen-Eigenschaften: first & lastListen-Status: isEmpty & isNotEmptyEine Liste umkehrenHinzufügen zu einer Liste: insertElemente aus Liste entfernen: removeWhereSuchen in einer Liste: indexOfEine Liste sortierenEine Liste mischenZusammenfassung – Listen-Organizer4Fortgeschrittene Map-Manipulation
Über eine Map iterierenPrüfen auf Schlüssel und WerteMap-Eigenschaften: keys & valuesBedingtes Hinzufügen: putIfAbsentEinträge aus einer Map entfernenVerschachtelte MapsRückblick – Inventar-Update7Fortgeschrittene Funktionen
Anonyme FunktionenFunktionen als Argumente übergebenClosures verstehenEinführung in die RekursionRekursive Funktion: CountdownRekursive Funktion: FakultätZusammenfassung – List Processor10Abschluss-Herausforderungen
Herausforderung: NotensortiererHerausforderung: VokalzählerHerausforderung: FizzBuzz2Funktionale Listenoperationen
Transformieren mit 'map'Filtern mit 'where''.toList()' verwendenBedingungen prüfen mit 'any'Bedingungen mit 'every'Suchen mit 'firstWhere'Zusammenfassung – Datenfilterung3Sets
Was ist ein Set?Ein Set erstellenHinzufügen und Entfernen in SetsPrüfen auf Elemente in einem SetEine Liste in ein Set umwandelnSet-VereinigungSet-SchnittmengeSet-DifferenzRückblick – Einzigartige Gästeliste