Junior
Kolleksiyalar va massivlar o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Swiftda "kolleksiya" nomli alohida tur yo'q. Collection protokoli mavjud bo'lib, unga mos keladigan turli xil turlar, jumladan Array, Set va Dictionary mavjud.
Array va Collection protokoli bilan mos keladigan boshqa turlar o'rtasidagi asosiy farqlar:
-
Elementlarning tartibi:
Array: Tartiblangan kolleksiya. Elementlar belgilangan tartibda saqlanadi va indeks orqali kirish mumkin.Set: Tartibsiz, yagona elementlar kolleksiya.Dictionary: Tartibsiz, "kalit-qiymat" juftliklari kolleksiya.
-
Indeks bo'yicha kirish:
Array: Elementlarga butun indeks bilan kirish imkonini beradi.Set: Indeks bo'yicha to'g'ridan-to'g'ri kirishni qo'llab-quvvatlamaydi.Dictionary: Qiymatlarga kirish kalit orqali amalga oshiriladi.
-
Elementlarning yagona bo'lishi:
Array: Takroriy elementlarni o'z ichiga olishi mumkin.Set: Faqat yagona elementlarni o'z ichiga oladi.Dictionary: Kalitlar yagona bo'lishi kerak, qiymatlar takrorlanishi mumkin.
-
Ishlash tezligi:
Arrayda indeks bo'yicha kirish odatda tezroq (o'rtacha O(1)).SetyokiDictionaryda element yoki kalit bo'yicha qidiruv odatda tezroq (o'rtacha O(1)) vaArraybilan solishtirganda samaraliroq (O(n)).
Array dan foydalanish misoli:
// Stringlar massivini yaratish
var names: [String] = ["Alice", "Bob", "Charlie"]
// Indeks bo'yicha elementga kirish
let firstPerson = names[0] // "Alice"
// Element qo'shish
names.append("David") // ["Alice", "Bob", "Charlie", "David"]
Set dan foydalanish misoli:
// Butun sonlar to'plamini yaratish
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - takroriy element o'chirilgan
// Element mavjudligini tekshirish
let containsThree = uniqueNumbers.contains(3) // true
Dictionary dan foydalanish misoli:
// "ism - yosh" lug'ati yaratish
var ages: [String: Int] = ["Alice": 30, "Bob": 25]
// Kalit orqali qiymatga kirish
let aliceAge = ages["Alice"] // 30
// Yangi juftlik qo'shish
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]