Sobes.tech
Junior

Koleksiyonlar ve diziler arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Swift'te "koleksiyon" adlı ayrı bir tür yoktur. Collection protokolü vardır ve buna uygun çeşitli türler, bunlar arasında Array, Set ve Dictionary bulunur.

Array ile diğer Collection protokolüne uygun türler arasındaki temel farklar:

  1. Elemanların sırası:

    • Array: Sıralı koleksiyon. Elemanlar belirli bir sırayla saklanır ve indeksle erişilir.
    • Set: Sırasız, benzersiz elemanlar koleksiyonu.
    • Dictionary: Sırasız, anahtar-değer çiftleri koleksiyonu.
  2. İndeksle erişim:

    • Array: Elemanlara tam sayı indeksiyle erişim sağlar.
    • Set: Doğrudan indeksle erişim desteklenmez.
    • Dictionary: Değerlere anahtar ile erişilir.
  3. Elemanların benzersizliği:

    • Array: Yinelenen elemanlar içerebilir.
    • Set: Sadece benzersiz elemanlar içerir.
    • Dictionary: Anahtarlar benzersiz olmalı, değerler tekrar edebilir.
  4. Performans:

    • Array'de indeksle erişim genellikle daha hızlıdır (ortalama O(1)).
    • Set veya Dictionary'de anahtar veya eleman arama genellikle daha hızlıdır (ortalama O(1)) ve Array'e göre daha etkilidir (O(n) ile karşılaştırıldığında).

Array kullanımı örneği:

// String dizisi oluşturma
var names: [String] = ["Alice", "Bob", "Charlie"]

// İndeksle eleman erişimi
let firstPerson = names[0] // "Alice"

// Eleman ekleme
names.append("David") // ["Alice", "Bob", "Charlie", "David"]

Set kullanımı örneği:

// Tamsayı kümesi oluşturma
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - tekrar silindi

// Eleman içerip içermediğini kontrol etme
let containsThree = uniqueNumbers.contains(3) // true

Dictionary kullanımı örneği:

// "İsim - yaş" sözlüğü oluşturma
var ages: [String: Int] = ["Alice": 30, "Bob": 25]

// Anahtar ile değere erişim
let aliceAge = ages["Alice"] // 30

// Yeni çift ekleme
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]