Merhabalar.

Dart eğitimlerimizin en önemli konularından biri de listeler.

Bu yazım boyunca detaylarıyla listeler konusuna bakmaya çalışacağız.

Öncelikle neden listeler bunu anlamaya çalışalım.

Örneğin 100 kişilik bir üniversite sınıfını düşünelim ve buradaki öğrencilerin isimleri ve notlarını saklamak isteyelim.

Diziler – Listeler kavramını bilmeseydik bunu şöyle yapmamız gerekirdi.

String ad1, ad2, ad3, ...., a100;
int not1, not2, not3, ...., not100;

Hepsini yazdığımızda ne kadar meşakkatli olacağını tahmin etmişsinizdir.

İşte aynı tip ya da farklı tip verilerimizi tek tek değişken tanımlama gereksinimi duymadan saklayabilmemiz için liste kavramı ortaya çıkmıştır.

Basit Bir Liste Tanımı

void main(){

  var Names = ["Murat", "Ferhat", "Meryem"];
  
}

İlk değer tanımlı bir liste oluşturmuş olduk. Burada var tipli olduğu için listenin içine istediğimiz tipte veri girişi yapabiliriz.

void main(){

  var list1 = ["Murat", "Ferhat", "Meryem"];
  var list2 = ["Murat", "Ferhat", "Meryem", 1, 2, false];
  
}

Bir Listenin Uzunluğunu Sınırlı Şekilde Belirtebiliriz.

var list3 = new List(5);

Uzunluğu belirtilmiş ve değer atanmamış listenin elemanlarına teker teker ulaşmak istersek null değeriyle karşılaşırız.

Diziye Değer Atama

  list3[0] = "Murat";
  list3[1] = "Ferhat";
  list3[2] = "Meryem";
  list3[3] = 1;
  list3[4] = 2;

Burada belirtilen dizinin dışında bir indise değer atamaya çalışırsak dizin aralık dışındaydı hatası ile karşılaşırız.

Bir dizinin elemanlarına atama yaparken ki gibi indis değerlerinden ulaşıp yazdırabiliriz.

  print(list3[0]);
  print(list3[1]);
  print(list3[2]);
  print(list3[3]);
  print(list3[4]);

Listenin belirlenen indisi dışındaki bir değeri yazdırmak istersek yine hata alırız.

Hataları kendiniz kontrol edebilirsiniz.

Uzunluğu Genişletilebilir Listeler Tanımlama

Bir size değeri vermeden liste tanımlayabiliriz.

Böylelikle bu diziye istediğimiz kadar değer atayabiliriz.

Bu tür bir listenin sonuna add metoduyla değer eklenebilir.

  var list4 = new List();

  list4.add("Murat");
  list4.add(1);
  list4.add(2);
  
  print(list4);

İlk değer ataması yapılmış bir listenin sonuna da add metoduyla yeni değer eklenebilir.

 var list5 = [1,2,4,"Ferhat"];
  list5.add(5);
  list5.add("Murat");

  print(list5);

Burada bilmeniz gereken önemli bir nokta var.

Bir liste ilk değer ataması yapıldığında eğer sadece tek bir veri tipi yapılırsa sonra add metoduyla sadece o veri tipinden değer eklemenize izin verir.

Örneğin list ilk olarak 1 2 3 gibi 3 tane int değeri almış olsaydı sonradan add ile string bir değer eklemek isteseydik hata alırdık.

Çünkü program artık o listeyi bir int listesi olarak algılamıştır.

Add ve AddAll Metodları

Bir diziye add ile sonuna değer ekleyebiliriz.

AddAll metodu ile bir dizinin sonuna dizi ekleyebiliriz.

var list6 = [1,3,5,"Murat"];
  list6.add(6);
  list6.addAll([7,8,9,"Ferhat"]);
  print(list6);
  
  var list7 = [234,56,443,"Meryem"];
  list6.addAll(list7);
  
  print(list6);

Insert ve InsertAll Metodları

Insert ile listenin istediğimiz bir indisine değer atayabiliriz.

list.insert(indis, value) şeklinde kullanılır.

InsertAll metodu ile de istediğimiz indisin olduğu yerden başlayarak bir diziye başka bir dizi ekleyebiliriz.

Insert işlemlerinde daha önceden belirtilen indiste olan değer silinmez. Sadece ötelenir yeni indir değerine.

 var list8 = [1,3,4];
  var list9 = [5,6,8];
  
  list8.insert(0, 10);
  print(list8);
  
  list8.insertAll(1, list9);
  print(list8);

Liste Değeri Güncelleme

Bir liste elemanını indis değerinden güncelleyebiliriz.

var list10 = [1,2,3];
  print(list10);
  list10[0] = 100;
  print(list10);

replaceRange Metodu

Bir dizi içinde bir aralıktaki değerleri güncellemek için kullanılır.

list.replaceRange(başlangıçindexi, bitişindexi, değerler)

var list11 = [1,2,3,4,5];
  print(list11);
  var list12 = [45,3,4532];
  list11.replaceRange(1, 2, list12);
  print(list11);

Listeden Değer Silme İşlemleri

Listedeki bir elemanı direkt değerin kendisine ulaşarak remove metoduyla silebiliriz.

Remove metodu bir listede aynı elemandan bir kaç tane varsa hepsini silecektir.

var list13 = [1,2,3,4,5,5,6,6,7,7,7];
  
  list13.remove(1);
  print(list13);
  list13.remove(7);
  print(list13);

Eğer değeri direkt index numarasını erişerek silmek istersek removeAt metodu kullanılır.

list.removeAt(index);

0. indisteki değeri silmek istiyorum.

list13.removeAt(0);
  print(list13);

Dizinin son elemanını silmek istersek removeLast fonksiyonu kullanılır.

list13.removeLast();
  print(list13);

removeRange metodu ile belli aralıktaki değerleri silebiliriz.

Örneğin indis 0 ile 3 arasındaki değerleri silmek istersek

list.removeRange(0,3) yazabiliriz.

list13.removeRange(0, 3);
  print(list13);

Bu şu anlama gelir. 0. indisten itibaren 3. indise kadar değerleri sil demektir. 3. indis dahil değildir. 0 1 2. indisteki değerler silinir.

Bir listenin uzunluğunu lengt özelliği ile öğrenebiliriz.

print(list13.length);

Elimizdeki bir listeyi küçükten büyüğe sıralamak istersek sort metodunu kullanırız.

Listeyi terse çevirmek isterse reversed özelliğini kullanırız.

  list13.sort();

  print(list13);

  print(list13.reversed.toString());

Foreach Kullanımı

Bir dizinin elemanlarına tek tek ulaşmak için foreach yöntemi kullanılabilir.

 var list14 = [1,3,4,5,6];

  list14.forEach((element) {
    print(element);
  });

Burada işleyiş şöyledir. Bir dizi forEach’e alındığı an her elamanının üzerinden sırayla dönülür. Ve her defasında değer element diye belirttiğimiz değişkene atanır. Bu değişkendeki değerle istediğimizi yaptırabiliriz.

Bu arada element değişkenine istediğiniz ismi verebilirsiniz.

Sublist Metodu

Bu metod var olan bir listeden alt listeler oluşturmak için kullanılır.

Listenin elemanlarından belirtilen start ve end indeks değerleri aralığını kapsayan yeni bir liste elde etmemizi sağlar. Buradaki önemli nokta end indeksli elemanın yeni listeye eklenmemesidir.

 var list15= [1,2,3,4,5,6,7,8,9];
  var list16 = list15.sublist(0,3);
  print(list16);

Sublist değerine end değeri verilmezse başlangıç index’inden itibaren dizinin sonuna kadar alır.

list.sublist(1); şeklinde kullanılır.

Shuffle Metodu

Var olan dizinin elemalarını rastgele yeniden dizmenizi sağlar.

list15.shuffle();
  print(list15);

Kullanılabilecek farklı dizi metodları var ancak bu gördüklerimiz en yaygın kullanılanları.

Diğerlerine farklı bir yazımızda ele alacağız.

Bir sonraki yazımda görüşmek üzere.


What's Your Reaction?

hate hate
0
hate
fail fail
0
fail
fun fun
0
fun
geeky geeky
0
geeky
love love
0
love
lol lol
0
lol
omg omg
0
omg
win win
0
win
Murat Bilginer
21 Şubat 1992 Doğumlu. Endüstri Mühendisi olarak Lisansını 2016 yılında tamamlamıştır. Industryolog Akademi - NGenius oluşumlarının kurucusudur. Şu anda kendi şirketi Brainy Tech ile hem Yazılım Hizmetleri Sunmakta Hem de Online Eğitimler Vermektedir.