Dart – Listeler

In Genel, Blog
1 Temmuz 2021
7 min read

Dart – Listeler

Veri Türlerinde 2. Bölüm — Listeler

Genel olarak çoğu programlama dillerinde sıklılıkla kullanılan array’lerin (dizi) Dart dilinde karşılığı List’dir. List basitçe objelerden oluşan dizidir denilebilir. Listelerin diziler ile ilk ortak noktası ilk elemanın index olarak 0’dan başlamasıdır.

Genel anlamda Fixed Length ve Growable olarak iki çeşit List bulunmaktadır. Bunları inceleyecek olursak;

1- Fixed Length List : Adından da anlaşıldığı üzere listenin boyutu bellidir ve programın runtime anında boyut değişmemektedir. Fixed Length List aşağıdaki şekilde tanımlanmaktadır.

var list_adı = new List(Liste boyutu);

Basit bir örnekle inceleyecek olursak;

void main() {

//3 tane element içeren listemizi oluşturuyoruz.
var yemekListesi = new List(3);

//Elementleri indexlerini belirterek listeye ekliyoruz.
davetliListesi[0] = ‘Çorba’;
yemekListesi[1] = ‘Pilav’;
yemekListesi[2] = ‘Köfte Patates’;
yemekListesi[3] = ‘Baklava’;

print(“Yemek Listesi: “);

//for döngüsü yardımyla listedekileri console’a yazdırıyoruz.
for (int i = 0; i<=yemekListesi.length-1;i++){
print(yemekListesi[i]);
}
}

******ÇIKTI******

Yemek Listesi:
Çorba
Pilav
Köfte Patates
Baklava

2- Growable List: Fixed Length List’in aksine bu tipte oluşturulan liste runtime anında genişletilebilmektedir. Sınırını bilmediğimiz objeler içeren listeler oluşturmamıza olanak sağlar.

//Tanımlarken değerleri ataması yapabiliriz.
var list = [deger1, deger2, deger3];

//Boş bir liste oluşturabiliriz.
var list = new List();

//Listeye tanımladıktan sonra değer ekleyebiliriz.
list[3] = deger4;

list.add(deger4);

Örnek olarak;

void main() {
var lst = new List();
lst.add(12);
lst.add(13);
print(lst);
}

******ÇIKTI******

[12, 13]

Normalde sadece 12 sayısı vardı listede, ama biz istediğimiz zaman 13 sayısını ekleyebildik.

LİSTE ÖZELLİKLERİ

  • first : Listenin ilk elemanını döndürür. Hemen bir örnek gösterelim..

void main() {
var lst = new List();
lst.add(4);
lst.add(5);
print(“Listenin ilk elemanı : ${lst.first}”);
}

******ÇIKTI******

Listenin ilk elemanı : 4

  • isEmpty : Listede eleman yoksa “true”, eleman varsa false döndürür. Bir önceki örneği düşünecek olursak, print(lst.isEmpty); kısmını yazdırıp çalıştırdığımız zaman, listede 4 ve 5 elemanları olduğu için çıktı “false” olarak dönecektir.
  • isNotEmpty : Liste içinde en az bir eleman mevcutsa “true” değeri dönmektedir. Yine aynı örnekte print(lst.isNotEmpty); yazdığımız zaman listede eleman bulunduğundan çıktı “true” değerini döndürecektir.
  • length : Listenin uzunluğunu döndürür. Aynı örnekte listede iki eleman olduğundan liste uzunluğu 2 olarak görünecektir.

void main() {
var lst = new List();
lst.add(4);
lst.add(5);
print(“Listenin uzunluğu : ${lst.length}”);
}

******ÇIKTI******

Listenin uzunluğu : 2

  • last : Listenin son elemanını döndürür. first özelliğinin tam tersi gibi de düşünebiliriz. print(“Listenin son elemanı : ${lst.last}”); satırını yazdığımız zaman çıktı olarak karşımıza 5 elemanının çıktığını görürüz.
  • reversed : Var olan listenin elemanlarını tersten sırayalarak yeni bir liste döndürür.

void main() {
var lst = new List();
lst.add(4);
lst.add(5);
print(“Ters sırada liste değerleri : ${lst.reversed}”);
}

******ÇIKTI******

Ters sırada liste değerleri : (5,4)

  • Single Listenin yalnızca bir öğesi olup olmadığını kontrol eder ve onu döndürür.

void main() {
var lst = new List();
lst.add(4);
print(“Liste sadece şu elemanı içermektedir : ${lst.single}”);
}

******ÇIKTI******

Liste sadece şu elemanı içermektedir : 4

Şimdi ise son olarak listelerdeki 3 temel işlemi örneklerle açıklayalım.

1- Bir Listeye Eleman Ekleme (Inserting Elements into a List) — List.add ()

void main() {
List liste= [1,2,3];
liste.add(4);
print(liste);
}

******ÇIKTI******

[1, 2, 3, 4]

  • List.addAll () işlevi, virgülle ayrılmış birçok değeri kabul eder ve var olan listeye eklemeler yapar.

void main() {
List liste = [1,2,3];
liste.addAll([4,5]);
print(liste);
}

******ÇIKTI******

[1, 2, 3, 4, 5]

Farkettiyseniz add özelliği ile eklenen tüm yeni elemalar listenin sonuna eklenmektedir. Nereye ekleyeceğimize biz karar veremiyoruz. Ancak eğer özellikle eklemek istediğimiz bir sıra var ise bu kez add yerine insert özelliğini kullanmak gerekiyor. Örnek olarak aşağıdaki örnekte sonradan eklenen 4 elemanına index numarasını 0 vererek ilk sıraya ekleme işlemi yaptık.

void main() {
List liste = [1,2,3];
liste.insert(0,4);
print(liste);
}

******ÇIKTI******

[4, 1, 2, 3]

2- İndexi Güncelleme (Updating the index)

Dart’taki listeler şu şekilde güncellenebilir.

  • Dizini Güncelleme : Lisste öğesinin değerini index numarasını kullanarak yeniden yazabiliriz. Mesela aşağıdaki örnekte ilk değeri 1 olan elemanı index numarasını kullanarak 123 değeri olarak değiştirdik.

void main() {
List liste = [1, 2, 3,];
liste[0] = 123;
print (liste);
}

******ÇIKTI******

[123, 2, 3]

  • List.replaceRange () işlevini kullanmaList sınıfı, List öğelerini değiştirmek için replaceRange () işlevini de sağlamaktadır . Bu işlev, belirtilen aralıktaki öğelerin değerini değiştirir. List.replaceRange(int start_index,int end_index,Iterable <items>)
  • Start_index — değiştirmeye başlanacak olan yerin index numarası.
  • End_index — değiştirmenin durdurulacak olan yerin index numarası.
  • <items> — güncellenmiş değerleri temsil eden yinelenebilir bir nesne.

void main() {
List liste = [1,2,3,4,5];
print(‘Listenin ilk sıralaması : ${liste}’);

liste.replaceRange(0,3,[6,7,8]);
print(‘[0-3] arasında liste güncellendiği zaman yeni liste: ${liste}’);
}

******ÇIKTI******

Listenin ilk sıralaması : [1,2,3,4,5]
[0-3] arasında liste güncellendiği zaman yeni liste: [6,7,8,4,5]

3- Listenin öğelerini kaldırma (Removing List items ) — List.remove

list.remove işlevi belirtilen öğenin listedeki değerini kullanarak kaldırılmasını sağlar. List.remove(Object value)

void main() {
List liste = [1,2,3,4,5];
print(‘Listeden eleman kaldırılmadan önce liste : ${liste}’);
bool res = liste.remove(1);
print(‘Listeden eleman kaldırıldıktan sonra liste : ${liste}’);
}

******ÇIKTI******

Listeden eleman kaldırılmadan önce liste : [1, 2, 3, 4, 5]
Listeden eleman kaldırıldıktan sonra liste : [2, 3, 4, 5]

List.removeAt işlevi belirtilen öğenin listedeki index numarasını kullanarak kaldırmasını sağlar. List.removeAt(int index)

void main() {
List liste = [1,2,3,4,5];
print(‘Listeden eleman kaldırılmadan önce liste : ${liste}’);
dynamic res = liste.removeAt(1);
print(‘Listeden eleman kaldırıldıktan sonra liste : ${liste}’);
}

******ÇIKTI******

Listeden eleman kaldırılmadan önce liste : [1, 2, 3, 4, 5]
Listeden eleman kaldırıldıktan sonra liste : [1, 3, 4, 5]

List.removeLast () işlevi belirtilen listedeki son elemanın kaldırılmasını sağlar. List.removeLast()

void main() {
List liste = [1,2,3,4,5];
print(‘Listeden eleman kaldırılmadan önce liste : ${liste}’);
dynamic res = liste.removeLast();
print(“Listeden kaldırılan eleman: : ${res}’);
print(‘Listeden eleman kaldırıldıktan sonra liste : ${liste}’);
}

******ÇIKTI******

Listeden eleman kaldırılmadan önce liste : [1, 2, 3, 4, 5]
Listeden kaldırılan eleman : 5
Listeden eleman kaldırıldıktan sonra liste : [1, 2, 3, 4]

List.removeRange () işlevi, belirtilen aralıkta öğeleri kaldırmayı sağlar. List.removeRange(int start, int end)

void main() {
List liste = [1,2,3,4,5];
print(‘Listeden eleman kaldırılmadan önce liste : ${liste}’);
liste.removeRange(0,3);
print(‘[0-3] arasında liste güncellendiği zaman yeni liste: ${l}’);
}

******ÇIKTI******

Listeden eleman kaldırılmadan önce liste : [1, 2, 3, 4, 5]
[0-3] arasında liste güncellendiği zaman yeni liste: [4, 5]

Evet arkadaşlar bu yazımda da Dart için önemli ve çok fazla kullanılan bir konu yani Listeler konusunu kendimce örneklerle anlatmaya çalıştım 🙂

Umarım anlaşılır ve faydalı olmuştur…. Yorum, görüş ve desteklerinizi bekliyorummm 🙂 İnşallah hep olumlu yorumlar gelir ✌️

Bir sonraki konu olan MAP konusunda tekrar görüşünceye kadar kendinize iyi bakkıııınnnn :)))

Bir yanıt yazın

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