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 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 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 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 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 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
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
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
teşekkürler anlatımlarınız için , ,harika 🙂
bunları nasıl birleştireceğiz sorun çok çalışmak gerek elbette
Teşekkür ederim, inanmak başarmanın yarısıdır derler, inanırsan olur