18- Dart Koleksiyon Yapıları Listeler

Merhaba arkadaşlar;

Koleksiyon yapıları nesneleri gruplamaya yarayan sınıflardır. Şöylede diyebiliriz, aynı türden veya farlı türden değerleri bir değişkende saklamaya yarar. Diğer programla dillerinde olduğu gibi Dart dilinde koleksiyon yapıları oldukça yoğun bir şekilde yer almaktadır. Peki ama nedir bu listeler? Arkadaşlar biz bugüne kadar hep değişkenlerle çalıştık ve onlara değer atarken bir değişkene 1 değer atadık. Eğer biz bir grubu veya birden fazla değeri bir değişken mantığı gibi hareket eden bir şekilde saklamak istersek ne olacak? İşte burada listelerin önemi ortaya çıkmaktadır. Örneğin bir sınıftaki öğrencilerin isimlerini bir listede saklayabilir, buradan istediğimi alabilir, kullanabilir veya yeni bir isim ilave edebilirim.

Aşağıdan yazımızın içeriğini video olarak izleyebilirsiniz.

Dart koleksiyon yapıları – sabit uzunlukta listeler

Dart Sabit Uzunluklu Listeler

Sabit uzunluklu bir liste kullanıyorsak eğer en başından listenin uzunluğu belirtilir ve içerisine değerleri yazılır. Eğer biz bu listede değerleri sonradan vermek istersek yerine geçici değerler yazmak zorundayız. Bir değeri karşılıksız bırakamazsınız.

Şimdi dart dilinde sabit uzunlukta bir liste nasıl yazılır örneklendirmeye çalışalım.

List<int> ornekListe = List.filled(length, fill, growable: false);

//Aşağıdaki resimde aynı yapıyı detaylı inceleyelim
Dart sabit uzunlukta liste
Dart sabit uzunlukta liste

Dart Sabit Uzunluktaki Listelerin Elemanlarına Erişme

Dart int tipinde liste tanımlaması

Listelerde elemanlara ulaşmak için index numaraları kullanılır. Bir listenin elemanları soldan sağa doğru indexlendirilir. İlk eleman sıfırıncı indextir. Dört elemanlı bir listenin ilk elamını sıfırıncı index son elemanı ise üçüncü indextir. Bir listenin bir elemanına ulaşmak için listeye köşeli parantezler eklenerek index numarası yazılır. Aşağıda örneklerle birlikte inceleyelim.

void main(List<String> args) {
  List<int> ornekListe = List.filled(4, 0, growable: false);
  //4 elemanlı, herbir elemanı sıfır olan sabit uzunlukta listemiz

  ornekListe[0] = 1; //listemize eleman atadık
  ornekListe[1] = 2;
  ornekListe[2] = 3;
  ornekListe[3] = 4;

  print(ornekListe);
  //listemizi yazdırdık

  print(ornekListe[3]);
  //listemizin 3ncü indexindeki elemanı yazdırdık
}

//SONUÇ  [1, 2, 3, 4]
//SONUÇ   4
Dart Sabit Uzunluktaki Listelerin Elemanlarına Erişme

Dart String tipinde liste tanımlaması

Biz yukarıdaki listeyi integer türünde tanımladık. Şimdi bu örneğimizi String ile yapalım.

void main(List<String> args) {
  List<String> meyveler = List.filled(4, "");
  meyveler[0] = "elma";
  meyveler[1] = "armut";
  meyveler[2] = "portakal";
  meyveler[3] = "nar";
  print(meyveler);
}

//SONUÇ  [elma, armut, portakal, nar]
dart string tipinde liste

Dart dynamic tipinde liste tanımlaması

Yukarıdaki resimde String tipinde bir liste tanımladık. Ancak biz hem int hem String hem de bool türünde bir değer atamak isteyebiliriz. Bu gibi durumda eğer listenin tipini belirtmezsek otomatik olarak dynamic tipinde oluşur. Listeyi tanımlarken yine dynamic diye tip belirtebiliriz. Ben liste tanımlarken her zaman tipinin belirtilmesinden yanayım. Aşağıda dynamic türünde bir örnek yapalım.

void main(List<String> args) {
List<dynamic> karisik = List.filled(3, "");
  karisik[0] = 15;
  karisik[1] = "elma";
  karisik[2] = true;

  print(karisik);
}

//SONUÇ  [15, elma, true]
dart dynamic türünde liste

Dart liste elemanlarına for döngüsü ile ulaşmak

Arkadaşlar liste elemanlarını her defasına tek tek gezemeyiz. Listeleri gezmek için for döndüsünü kullanmak bize büyük rahatlık sunar. Bu konuda daha fazla bilgi almak için linke tıklayabilirsiniz.

void main(List<String> args) {
  List<dynamic> karisik = List.filled(3, "");
  karisik[0] = 15;
  karisik[1] = "elma";
  karisik[2] = true;

  for (int i = 0; i < karisik.length; i++) {
    print(karisik[i]);
  }
}

//SONUÇ 
15
elma
true

dart for döngüsü ile dizileri gezme
void main(List<String> args) {
  List<dynamic> karisik = List.filled(3, "");
  karisik[0] = 15;
  karisik[1] = "elma";
  karisik[2] = true;

  for (var liste in karisik) {
    print(liste);
  }
}

//SONUÇ 
15
elma
true

for in döngüsü ile listeyi gezme

Evet arkadaşlar sabit uzunluktaki listeleri gördük. Ancak biz her zaman sabit uzunlukta liste kullanamayız. Bazı durumlarda listelerimize yeni elemanlar ekleme ihtiyacı duyarız. Bu durumlarda dinamik uzunlukta, büyüyüp küçülebilen listeleri kullanmamız gerekir.

Dart dinamik uzunlukta listeler

Biz yazımızın başında sabit uzunlukta bir liste yapısı sunmuştuk. Şimdi onu tekrar ele alalım ve bu yapının nasıl dinamik uzunluğa çevrilebileceğini görelim.

Aşağıda verdiğimiz yazı bir sabit uzunlukta liste için geçerliydi. Dikkat ettiyseniz growable:false diyor. Yani büyüyebilir:hayır diyor, peki biz bunu true yapalım ve artık listemiz büyüyebilen dinamik uzunlukta bir liste olsun.

List<tipi> ornekListe = [ ]; // klasik bir liste tanımı. Dinamik liste olarak kullanılan en yaygın yazım örneği.

List<int> ornekListe = List.filled(length, fill, growable: false);
//Sabit uzunlukta liste tanımı

List<int> ornekListe = List.filled(length, fill, growable: true);
//Dinamik uzunlukta, büyüyebilen, küçülebilen liste tanımı

List<int> ornekListe = List.empty(growable: true);
//Dinamik uzunlukta, büyüyebilen, küçülebilen liste tanımı

List<int> ornekListe = [ ];
//Dinamik uzunlukta, büyüyebilen, küçülebilen liste tanımı

var liste = <String>[ ];
//Dinamik uzunlukta, büyüyebilen, küçülebilen liste tanımı

Aşağıdaki örneklerimizi inceleyelim.

void main(List<String> args) {
  List<int> ornekListe = List.filled(5, 0, growable: true);
  //dinamik uzunlukta liste tanımladık

  print(ornekListe);
  //listemizi yazdırdık

  print(ornekListe.length);
  //listemizin uzunluğunu yazdırdık

  ornekListe.add(22);
  ornekListe.add(36);
  //listemize eleman ekledik

  print(ornekListe);
  //listemizi tekrar yazdırdık

  print(ornekListe.length);
  //listemizin uzunluğunu tekrar yazdırdık
}

//SONUÇ 
[0, 0, 0, 0, 0]
5
[0, 0, 0, 0, 0, 22, 36]
7

void main(List<String> args) {
  List<dynamic> ornekListe = [];
  //listemizi tanımladık

  ornekListe.add(22);
  ornekListe.add("mehmet");
  ornekListe.add(true);
  //listeye elemanlar ekledik

  print(ornekListe);
  //listeyi yazdırdık

  print(ornekListe.length);
  //listenin uzunluğunu yazdırdık

  ornekListe.add("elma");
  // listeye tekrar eleman ekledik

  print(ornekListe);
  //listeyi tekrar yazdırdık

  print(ornekListe.length);
  //listenin uzunluğunu tekrar yazdırdık
}

//SONUÇ 
[22, mehmet, true]
3
[22, mehmet, true, elma]
4

Evet arkadaşlar Dart Listeler konulu dersimizin sonuna geldik. Bu konu ile ilgili birçok kaynak mevcut. Elimizden geldiği kadar anlatmaya çalıştık. Farklı kaynaklardan bilgi almak isterseniz diye bir iki link veriyorum. https://www.tutorialspoint.com/dart_programming/dart_programming_lists.htm

2 thoughts on “18- Dart Koleksiyon Yapıları Listeler”

  1. teşekkürler anlatımlarınız için , ,harika 🙂
    bunları nasıl birleştireceğiz sorun çok çalışmak gerek elbette

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir