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)