Dart programlama diliyle set’ler (kümeler) kullanımı, özellikle benzersiz verilerle çalışırken oldukça etkilidir. Listelerden farklı olarak Set , aynı öğeyi birden fazla kez tutmaz. Aşağıda Dart’ta set’lerin nasıl oluşturulup yönetildiğini, örneklerle birlikte adım adım anlatıyorum.

dart ile setów

Quick Scoop

Dart dünyasında Set veri yapısı , hem performansı hem de veri bütünlüğü açısından temel bir araçtır. 2026 yılı itibarıyla Flutter ve Dart ekosisteminde set’lerin kullanımı; koleksiyon yönetimi, filtreleme ve veri karşılaştırması gibi alanlarda hızla yaygınlaşmaktadır.

🎯 Set Nedir?

Basitçe söylemek gerekirse:

"Set, aynı değeri birden fazla içermeyen, sırasız veri koleksiyonudur."

Özellikleri:

  • Benzersiz öğeler içerir (duplicate olmaz).
  • Eleman sırası önemli değildir.
  • Performanslı arama işlemleri sunar (O(1) ortalama karmaşıklık).

Örnek:

dart

void main() {
  var sayilar = <int>{1, 2, 3, 3};
  print(sayilar); // Çıktı: {1, 2, 3}
}

Gördüğünüz gibi, yinelenen 3 değeri tek bir kez tutulur.

🧩 Set Oluşturma Yöntemleri

  1. Literal (Süslü parantez) yöntemiyle:

    dart
    
    var meyveler = {'elma', 'armut', 'muz'};
    
  2. Set constructor kullanarak:

    dart
    
    var sehirler = Set<String>();
    sehirler.add('Ankara');
    sehirler.add('İzmir');
    
  3. List’ten Set’e dönüştürme:

    dart
    
    var tekrarEdenler = ['a', 'b', 'b', 'c'];
    var benzerOlmayanlar = tekrarEdenler.toSet();
    print(benzerOlmayanlar); // {a, b, c}
    

🔄 Temel İşlemler

İşlem Adı| Açıklama| Örnek Kod
---|---|---
add()| Set’e yeni eleman ekler| set.add('elma')
remove()| Elemanı siler| set.remove('armut')
contains()| Belirli bir öğe var mı kontrol eder| set.contains('muz')
union()| İki set’in birleşimini verir| a.union(b)
intersection()| Ortak elemanları verir| a.intersection(b)
difference()| Farkını verir| a.difference(b)

🧠 Gerçek Hayatta Kullanım Senaryoları

1. Kullanıcı Rollerini Yönetme

dart

var roller = {'admin', 'moderator', 'user'};
roller.add('guest');

Sistemde aynı rol iki kez tanımlanmaz, bu sayede hata riski azalır.

2. Veri filtreleme

Web API’den gelen tekrarlı verilerde toSet() kullanarak clean data elde edebilirsin:

dart

var tekrarlı = ['mango', 'apple', 'apple', 'banana'];
print(tekrarlı.toSet()); // {mango, apple, banana}

3. Kümeler Arası Karşılaştırma

dart

var a = {1, 2, 3};
var b = {3, 4, 5};

print(a.intersection(b)); // {3}
print(a.union(b)); // {1, 2, 3, 4, 5}

📈 2026 Trend Görünümü

Dart & Flutter ekosisteminde veri koleksiyon yönetimi giderek daha fonksiyonel hale geliyor.
Yeni sürümlerde Set yapısının:

  • unmodifiable (değiştirilemez) versiyonları,
  • spread operatörleriyle kolay birleşimleri ({...set1, ...set2}),
  • ve pattern matching destekleri gündemde.

Bu da Dart’ın modern veri işleme dillerine daha yakınlaşmasını sağlıyor.

💡 İpuçları

  • Her zaman Set tipini tanımlamaya çalış:

    dart
    
    Set<int> sayilar = {1, 2, 3};
    
  • Dönüştürme işlemlerinde .toList() gibi metotlarla set’i yine listeye çevirebilirsin.

  • Eğer sıralama gerekiyorsa Set uygun değildir; bunun yerine List veya LinkedHashSet tercih edebilirsin.

🧾 TL;DR

  • Set → Tekil ve sırasız koleksiyon.
  • Duplicated element = yok.
  • Yaygın işlemler: add(), remove(), union(), intersection().
  • Modern Dart (2026)Set fonksiyonelliğini artırmaya devam ediyor.

Bilgi Notu:
Information gathered from public forums or data available on the internet and portrayed here.