Listeye Ekleme: insert
Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası — ders 4 / 65.
Bir listenin belirli bir konumuna bir öğe eklemeniz gerektiğinde, insert() yöntemi yeni öğenin nereye gideceği konusunda size tam kontrol sağlar. Öğeleri her zaman listenin sonuna ekleyen add() yönteminin aksine, insert() bir öğeyi seçtiğiniz herhangi bir konuma yerleştirmenize olanak tanır.
insert() yöntemi iki parametre alır: öğeyi eklemek istediğiniz dizin 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 (indeks 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 yararlıdır. Herhangi bir konuma ekleme yapabilme yeteneği, insert() metodunu sıralı koleksiyonları yönetmek için güçlü bir araç haline getirir.
Görev
KolayMevcut bir görev listesindeki belirli konumlara acil görevler ekleyerek öncelikli bir görev sistemini yöneten bir program oluşturun. Programınız şunları yapmalıdır:
- Görev listesi adını temsil eden bir dize (string) girdisi okuyun
- Mevcut görevleri temsil eden birden fazla dize girdisi okuyun (girdi boş bir dize aldığınızda sona erecektir)
- Eklenecek acil bir görevi temsil eden bir dize girdisi okuyun
- Acil görevin eklenmesi gereken konumu temsil eden bir tam sayı (integer) girdisi okuyun
- Acil görevi belirtilen konuma eklemek için
insert()metodunu kullanın - Güncellenmiş görev listesini tam olarak aşağıda gösterilen formatta yazdırın
Ö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ızın çıktısı şu şekilde olmalıdır:
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: 4Eğer görev listesi adı "Daily Goals", mevcut görevler "Exercise", "Read book", acil görev "Buy groceries" ve konum 0 ise, programınızın çıktısı şu şekilde olmalıdır:
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ız, acil görevi belirtilen konuma eklemek için insert() metodunu kullanmalıdır. Konum girdisi her zaman geçerli bir dizin (0 ile mevcut görev listesinin uzunluğu arasında) olacaktır.
Kopya kağıdı
insert() yöntemi, bir listenin belirli bir konumuna bir öğe eklemenize olanak tanır. İki parametre alır: dizin konumu ve eklenecek öğe.
List<String> tasks = ['Buy groceries', 'Walk the dog', 'Read a book'];
// 0. dizine (başlangıca) ekle
tasks.insert(0, 'Check emails');
print(tasks); // ['Check emails', 'Buy groceries', 'Walk the dog', 'Read a book']Bir öğe eklediğinizde, o konumdaki ve sonrasındaki tüm mevcut öğeler bir konum sağa kayar. Bu yöntem, konumun önemli olduğu sıralı koleksiyonları korumak için kullanışlıdır.
Kendin dene
import 'dart:io';
void main() {
// Görev listesi adını oku
String? taskListName = stdin.readLineSync();
// Boş dize gelene 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 konumunu oku
String? urgentTask = stdin.readLineSync();
int position = int.parse(stdin.readLineSync()!);
// TODO: Kodunuzu aşağıya yazın
// Acil görevi belirtilen konuma eklemek için insert() metodunu kullanın
// Sonuçları istenen formatta yazdırın
print('Task List: $taskListName');
print('Original tasks: $tasks');
print('Inserted: $urgentTask at position $position');
// Güncellenmiş görevleri ve toplam sayıyı yazdırın
}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 Listesi