Sobes.tech
Junior

Dart'ta List ve Set arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Anahtar farklar:

  • İçerik: List, tekrar eden öğeleri içerebilir, Set yalnızca benzersiz öğeleri tutar.
  • Sıralama: List, ekleme sırasını korur, Set sıralamayı garanti etmez.
  • Performans:
    • Ekleme/silme: Ortalama olarak, Set'te öğe ekleme/silme işlemi (O(1)) daha hızlıdır, hashing kullanımı sayesinde. List'te bu işlemler, konuma bağlı olarak daha yavaş olabilir (O(n) kadar).
    • Arama: Set'te, değere göre arama (O(1) ortalama) daha hızlıdır, yine hashing nedeniyle. List'te, değere göre arama, listeyi baştan sona taramayı gerektirir (O(n)). List'te indeksle erişim ise hızlıdır (O(1)).

Örnekler:

// List - tekrar edenler izinli, sıralamayı korur
List<int> numbersList = [1, 2, 2, 3, 1];
print(numbersList); // Çıktı: [1, 2, 2, 3, 1]
print(numbersList[0]); // Çıktı: 1 (indeksle erişim)

// Set - yalnızca benzersiz öğeler, sıralama garanti edilmez
Set<int> numbersSet = {1, 2, 2, 3, 1};
print(numbersSet); // Çıktı: {1, 2, 3} (sıra değişebilir)
// print(numbersSet[0]); // Hata: Set indeksle erişimi desteklemez
print(numbersSet.contains(2)); // Çıktı: true (hızlı arama)