Dart Listeler

Emin alan
3 min readJan 23, 2025

--

Dart’ta Listeler (Lists), sıralı ve birden fazla elemanı bir arada tutmak için kullanılan veri yapılandırmalarıdır.

1. Liste Oluşturma

Dart’ta bir liste, köşeli parantez ([]) kullanılarak oluşturulur.

void main() {
// Boş liste oluşturma
List<int> sayilar = []; // Veya List.empty(growable: true);

// Elemanlarla birlikte bir liste oluşturma
List<String> meyveler = ["Elma", "Armut", "Muz"];
print(meyveler); // [Elma, Armut, Muz]
}

2. Dinamik ve Tip Belirtilmiş Listeler

Dart, hem tip belirtilmiş hem de dinamik listeler oluşturmayı destekler.

  • Tip Belirtilmiş Liste:
List<int> sayilar = [1, 2, 3, 4];
List<String> isimler = ["Ahmet", "Mehmet", "Ali"];
List<dynamic> karisik = [1, "Ahmet", true, 4.5];
print(karisik); // [1, Ahmet, true, 4.5]

3. Listeye Eleman Ekleme

  • add(): Tek bir eleman ekler.
List<int> sayilar = [1, 2, 3];
sayilar.add(4);
print(sayilar); // [1, 2, 3, 4]
  • addAll(): Birden fazla eleman ekler.
List<int> sayilar = [1, 2];
sayilar.addAll([3, 4, 5]);
print(sayilar); // [1, 2, 3, 4, 5]

4. Liste Elemanlarına Erişim

Liste elemanlarına indeksleri aracılığıyla erişilir (0 tabanlıdır).

void main() {
List<String> meyveler = ["Elma", "Armut", "Muz"];

// İlk eleman
print(meyveler[0]); // Elma

// Son eleman
print(meyveler[meyveler.length - 1]); // Muz

// Liste uzunluğu
print(meyveler.length); // 3
}

5. Liste Elemanlarını Güncelleme

Bir liste elemanını değiştirmek için, indeks ile eleman atanır.

void main() {
List<String> meyveler = ["Elma", "Armut", "Muz"];
meyveler[1] = "Çilek";
print(meyveler); // [Elma, Çilek, Muz]
}

6. Liste Elemanlarını Silme

  • remove(): Belirtilen elemanı siler.
List<int> sayilar = [1, 2, 3, 4];
sayilar.remove(3);
print(sayilar); // [1, 2, 4]
  • removeAt(): Belirtilen indeksteki elemanı siler.
List<int> sayilar = [1, 2, 3, 4];
sayilar.removeAt(1);
print(sayilar); // [1, 3, 4]
  • clear(): Tüm elemanları siler.
List<int> sayilar = [1, 2, 3, 4];
sayilar.clear();
print(sayilar); // []

7. Listeyi Döngüyle Gezinme

  • for Döngüsü:
List<String> meyveler = ["Elma", "Armut", "Muz"];
for (int i = 0; i < meyveler.length; i++) {
print(meyveler[i]);
}
  • forEach():
List<String> meyveler = ["Elma", "Armut", "Muz"];
meyveler.forEach((meyve) {
print(meyve);
});
  • for-in Döngüsü:
List<String> meyveler = ["Elma", "Armut", "Muz"];
for (var meyve in meyveler) {
print(meyve);
}

8. Liste Filtreleme ve İşlemleri

  • where(): Listeyi belirli bir koşula göre filtreler.
List<int> sayilar = [1, 2, 3, 4, 5, 6];
var ciftSayilar = sayilar.where((sayi) => sayi % 2 == 0);
print(ciftSayilar.toList()); // [2, 4, 6]

map(): Liste elemanlarını dönüştürür.

List<int> sayilar = [1, 2, 3];
var kareler = sayilar.map((sayi) => sayi * sayi);
print(kareler.toList()); // [1, 4, 9]

9. Sabit Boyutlu Listeler

Eğer bir listenin boyutunu sabit yapmak istiyorsanız, List.filled() kullanabilirsiniz.

void main() {
List<int> sabitListe = List.filled(5, 0);
print(sabitListe); // [0, 0, 0, 0, 0]
}

10. Spread Operatörü (...) ve Null-Aware Spread Operatörü (...?)

Spread operatörü, bir listenin elemanlarını başka bir listeye ekler.

void main() {
List<int> sayilar1 = [1, 2, 3];
List<int> sayilar2 = [4, 5, ...sayilar1];
print(sayilar2); // [4, 5, 1, 2, 3]

List<int>? bosListe;
List<int> sayilar3 = [0, ...?bosListe];
print(sayilar3); // [0]
}

11. Liste Sıralama

  • sort(): Listeyi sıralar.
List<int> sayilar = [3, 1, 4, 1, 5];
sayilar.sort();
print(sayilar); // [1, 1, 3, 4, 5]
  • Ters Sıralama:
sayilar.sort((a, b) => b.compareTo(a));
print(sayilar); // [5, 4, 3, 1, 1]

12. Boş Liste Kontrolü

Bir listenin boş olup olmadığını kontrol etmek için isEmpty veya isNotEmpty kullanılır.

void main() {
List<int> sayilar = [];
print(sayilar.isEmpty); // true
print(sayilar.isNotEmpty); // false
}

Dart Listeler ile Çalışmak

Dart’ta listeler oldukça güçlü ve esnektir. Liste elemanlarını dinamik olarak yönetebilir, filtreleyebilir ve dönüştürebilirsiniz. Bu esneklik sayesinde Dart, hem küçük hem de büyük projelerde liste işlemleri için ideal bir araçtır.

--

--

Emin alan
Emin alan

Written by Emin alan

Jr. Flutter Developer|Android & İOS

No responses yet