Junior
Koja je razlika između kolekcija i nizova?
sobes.tech АИ
Одговор од АИ
U Swift-u ne postoji poseban tip "kolekcije". Postoji protokol Collection, kojem odgovaraju različiti tipovi, uključujući Array, Set i Dictionary.
Glavne razlike između Array i drugih tipova koji implementiraju protokol Collection:
-
Redosled elemenata:
Array: Uređena kolekcija. Elementi su sačuvani u određenom redosledu i pristupa im se putem indeksa.Set: Neuređena kolekcija jedinstvenih elemenata.Dictionary: Neuređena kolekcija parova "ključ-vrednost".
-
Pristup putem indeksa:
Array: Podržava pristup elementima putem celobrojnog indeksa.Set: Ne podržava direktan pristup putem indeksa.Dictionary: Pristup vrednostima vrši se putem ključa.
-
Jedinstvenost elemenata:
Array: Može sadržavati duplikate.Set: Sadrži samo jedinstvene elemente.Dictionary: Ključevi moraju biti jedinstveni, vrednosti mogu da se ponove.
-
Performanse:
- Pristup putem indeksa u
Arrayje obično brži (prosečno O(1)). - Pretraživanje elementa u
Setili po ključu uDictionaryje obično brže (prosečno O(1)) u poređenju sa pretraživanjem uArray(O(n)).
- Pristup putem indeksa u
Primer korišćenja Array:
// Kreiranje niza stringova
var names: [String] = ["Alice", "Bob", "Charlie"]
// Pristup elementu putem indeksa
let firstPerson = names[0] // "Alice"
// Dodavanje elementa
names.append("David") // ["Alice", "Bob", "Charlie", "David"]
Primer korišćenja Set:
// Kreiranje skupa celih brojeva
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - duplikat uklonjen
// Provera da li sadrži element
let containsThree = uniqueNumbers.contains(3) // true
Primer korišćenja Dictionary:
// Kreiranje rečnika "ime - starost"
var ages: [String: Int] = ["Alice": 30, "Bob": 25]
// Pristup vrednosti putem ključa
let aliceAge = ages["Alice"] // 30
// Dodavanje nove pare
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]