Listeye Ekleme: insert
Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 4 / 65.
Bir listeye belirli bir konuma öğe eklemeniz gerektiğinde, insert() yöntemi yeni öğenin nereye yerleştirileceği üzerinde hassas kontrol sağlar. Öğeleri her zaman listenin sonuna ekleyen add() yönteminden farklı olarak insert(), bir öğeyi seçtiğiniz herhangi bir konuma yerleştirmenize olanak tanır.
insert() metodu iki parametre alır: öğeyi eklemek istediğiniz indeks konumu ve öğenin kendisi. Bir öğe eklediğinizde, o konumdaki ve sonrasındaki tüm mevcut öğeler bir konum sağa kayar.
List<String> tasks = ['Buy groceries', 'Walk the dog', 'Read a book'];
// Başlangıca (index 0) yeni bir görev ekle
tasks.insert(0, 'Check emails');
print(tasks); // ['Check emails', 'Buy groceries', 'Walk the dog', 'Read a book']Bu yöntem, öncelik listeleri, programlar veya belirli bir sırayı korumanız gereken herhangi bir durum gibi öğelerin sırasının önemli olduğu durumlarda özellikle kullanışlıdır. Herhangi bir konuma ekleme olanağı, insert() yöntemini sıralı koleksiyonları yönetmek için güçlü bir araç hâline getirir.
Görev
KolayMevcut bir görev listesine acil görevleri belirli konumlara ekleyerek öncelikli bir görev sistemini yöneten bir program oluştur. Programın şunları yapmalıdır:
- Görev listesi adını temsil eden bir dize girdisi oku
- Mevcut görevleri temsil eden birden fazla dize girdisi oku (boş bir dize aldığında girdi sona erecektir)
- Eklenecek acil görevi temsil eden bir dize girdisi oku
- Acil görevin ekleneceği konumu temsil eden bir tam sayı girdisi oku
- Acil görevi belirtilen konuma eklemek için
insert()yöntemini kullan - Güncellenmiş görev listesini aşağıda gösterilen biçimin aynısıyla yazdır
Örneğin, görev listesi adı "Work Schedule", mevcut görevler "Review documents", "Team meeting", "Submit report", acil görev "Client call" ve konum 1 ise programın şu çıktıyı vermelidir:
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: 4Görev listesi adı "Daily Goals", mevcut görevler "Exercise", "Read book", acil görev "Buy groceries" ve konum 0 ise programın şu çıktıyı vermelidir:
Task List: Daily Goals
Original tasks: [Exercise, Read book]
Inserted: Buy groceries at position 0
Updated tasks: [Buy groceries, Exercise, Read book]
Total tasks: 3Programın, acil görevi belirtilen konuma eklemek için insert() yöntemini kullanmalıdır. Konum girdisi her zaman geçerli bir indeks olacaktır (0 ile mevcut görev listesinin uzunluğu arasında).
Kendin dene
import 'dart:io';
void main() {
// Görev listesinin adını oku
String? taskListName = stdin.readLineSync();
// Boş bir dizeye kadar mevcut görevleri oku
List<String> tasks = [];
while (true) {
String? task = stdin.readLineSync();
if (task == null || task.isEmpty) {
break;
}
tasks.add(task);
}
// Acil görevi ve konumu oku
String? urgentTask = stdin.readLineSync();
int position = int.parse(stdin.readLineSync()!);
// Eklemeden önce orijinal görevleri sakla
String originalTasks = tasks.toString();
// TODO: Kodunu aşağıya yaz
// Acil görevi belirtilen konuma eklemek için insert() metodunu kullan
// Sonuçları istenen biçimde yazdır
print('Task List: $taskListName');
print('Original tasks: $originalTasks');
print('Inserted: $urgentTask at position $position');
// Güncellenmiş görevleri ve toplam sayıyı yazdır
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1İleri Düzey Liste İşlemleri
Liste Özellikleri: first & lastListe Durumu: isEmpty & isNotEmptyBir Listeyi Tersine ÇevirmeListeye Ekleme: insertListeden Silme: removeWhereListede Bulma: indexOfBir Listeyi SıralamaBir Listeyi KarıştırmaÖzet - Liste Düzenleyici4İleri Seviye Map İşlemleri
Map Üzerinde GezinmeAnahtar ve Değer KontrolüMap Özellikleri: keys & valuesKoşullu Ekleme: putIfAbsentMap'ten Öge Kaldırmaİç İçe Map'lerÖzet - Envanter Güncelleme7İleri Seviye Fonksiyonlar
Anonim FonksiyonlarFonksiyonları Argüman Olarak AktarmaClosure'ları AnlamakÖzyinelemeye GirişÖzyinelemeli Fonksiyon: Geri SayımÖzyinelemeli Fonksiyon: FaktöriyelÖzet - Liste İşleyici10Son Meydan Okumalar
Meydan Okuma: Not SıralayıcıMeydan Okuma: Sesli Harf SayacıMeydan Okuma: FizzBuzz2Fonksiyonel Liste İşlemleri
'map' ile Dönüştürme'where' ile Filtreleme'.toList()' Kullanımı'any' ile Koşul Kontrolü'every' ile Koşullar'firstWhere' ile BulmaÖzet - Veri Filtreleme5Proje: Alışveriş Sepeti Hesaplayıcı
Proje KurulumuSepete Ürün Ekleme3Kümeler
Küme Nedir?Küme OluşturmaKümelere Eleman Ekleme ve ÇıkarmaKüme İçinde Eleman KontrolüListeyi Kümeye DönüştürmeKüme BirleşimiKüme KesişimiKüme FarkıÖzet - Benzersiz Davetli ListesiKendi başına pratik yap: Online Dart derleyicisi