Junior
Жыйымдар менен массивдердин айырмасы эмнеде?
sobes.tech AI
AIден жооп
Swiftте «коллекция» деген өзүнчө түр жок. Бар Collection протоколу, ага ылайык келген ар кандай түрлөр бар, анын ичинде Array, Set жана Dictionary.
Array жана башка Collection протоколуна ылайык келген түрлөрдүн негизги айырмачылыктары:
-
Элементтердин тартиби:
Array: тартиптүү коллекция. Элементтер белгилүү бир тартипте сакталат жана индекс аркылуу жеткиликтүү.Set: тартипсиз уникалдуу элементтердин коллекциясы.Dictionary: тартипсиз «ключ-баа» парларынын коллекциясы.
-
Индекстер аркылуу жетүү:
Array: элементтерге бүтүн сандык индекс аркылуу жетүүгө болот.Set: индекстер аркылуу түз жетүү мүмкүн эмес.Dictionary: мааниге ключ аркылуу жетүү.
-
Элементтердин уникалдуулугу:
Array: кайталаган элементтер болушу мүмкүн.Set: гана уникалдуу элементтерди камтыйт.Dictionary: ключтер уникалдуу болушу керек, маанилер кайталашы мүмкүн.
-
Иштөө ылдамдыгы:
Arrayичинде индекс аркылуу жетүү көбүнчө тезирек (O(1) орто эсеп менен).SetжеDictionaryичинде элементти издөө көбүнчө тезирек (O(1) орто эсеп менен) —Arrayменен салыштырганда (O(n)).
Array колдонуу мисалы:
// Строкалардын массивин түзүү
var names: [String] = ["Alice", "Bob", "Charlie"]
// Индекс аркылуу элементке жетүү
let firstPerson = names[0] // "Alice"
// Элемент кошуу
names.append("David") // ["Alice", "Bob", "Charlie", "David"]
Set колдонуу мисалы:
// Бүтүн сандарды топтоо
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - кайталагандар алынып салынды
// Элемент бар-жогун текшерүү
let containsThree = uniqueNumbers.contains(3) // true
Dictionary колдонуу мисалы:
// "аты - жашы" деген сөздүк түзүү
var ages: [String: Int] = ["Alice": 30, "Bob": 25]
// Ключ аркылуу мааниге жетүү
let aliceAge = ages["Alice"] // 30
// Жаңы парду кошуу
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]