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, Set və Dictionary mövcuddur.
Array və digər Collection protokoluna uyğun növlər arasındakı əsas fərqlər:
-
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ı.
-
İ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.
-
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.
-
Performans:
Array-də indekslə giriş ümumiyyətlə daha sürətlidir (orta hesabla O(1)).Setvə yaDictionary-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]