Menu
Coddy logo textTech

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.

challenge icon

Görev

Kolay

Mevcut 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:

  1. Görev listesi adını temsil eden bir dize (string) girdisi okuyun
  2. Mevcut görevleri temsil eden birden fazla dize girdisi okuyun (girdi boş bir dize aldığınızda sona erecektir)
  3. Eklenecek acil bir görevi temsil eden bir dize girdisi okuyun
  4. Acil görevin eklenmesi gereken konumu temsil eden bir tam sayı (integer) girdisi okuyun
  5. Acil görevi belirtilen konuma eklemek için insert() metodunu kullanın
  6. 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: 4

Eğ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: 3

Programı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
}
quiz iconKendini test et

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