Sobes.tech
Junior

Kolleksiyalar və massivlər arasında fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Swift-də "kolleksiya" adlı ayrıca bir növ yoxdur. Collection protokolu mövcuddur və ona uyğun müxtəlif növlər, o cümlədən Array, SetDictionary mövcuddur.

Array və digər Collection protokoluna uyğun növlər arasındakı əsas fərqlər:

  1. Elementlərin sırası:

    • Array: Sıralı kolleksiya. Elementlər müəyyən bir sırayla saxlanılır və indekslə əldə edilir.
    • Set: Sırasız, unikal elementlər kolleksiyası.
    • Dictionary: Sırasız, "açar-dəyər" cütlükləri kolleksiyası.
  2. İndeksə görə giriş:

    • Array: Elementlərə tam ədədi indekslə giriş imkanı verir.
    • Set: İndeksə birbaşa giriş dəstəklənmir.
    • Dictionary: Dəyərlərə giriş açar vasitəsilə həyata keçirilir.
  3. Elementlərin unikal olması:

    • Array: Dublikat elementlərə malik ola bilər.
    • Set: Yalnız unikal elementlər saxlayır.
    • Dictionary: Açarlar unikal olmalıdır, dəyərlər təkrarlana bilər.
  4. Performans:

    • Array-də indekslə giriş ümumiyyətlə daha sürətlidir (orta hesabla O(1)).
    • Set və ya Dictionary-də element və ya açar üzrə axtarış ümumiyyətlə daha sürətlidir (orta hesabla O(1)) və Array-ə nisbətən daha səmərəlidir (O(n)).

Array istifadə nümunəsi:

// Stringlərdən ibarət array yaradılması
var names: [String] = ["Alice", "Bob", "Charlie"]

// İndeksə görə elementə giriş
let firstPerson = names[0] // "Alice"

// Element əlavə etmək
names.append("David") // ["Alice", "Bob", "Charlie", "David"]

Set istifadə nümunəsi:

// Tam ədədlərdən ibarət set yaradılması
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - təkrarlanan element silinib

// Elementin olub-olmadığını yoxlamaq
let containsThree = uniqueNumbers.contains(3) // true

Dictionary istifadə nümunəsi:

// "ad - yaş" sözlüyü yaradılması
var ages: [String: Int] = ["Alice": 30, "Bob": 25]

// Açar vasitəsilə dəyərə giriş
let aliceAge = ages["Alice"] // 30

// Yeni cütlük əlavə etmək
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]