Sobes.tech
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:

  1. 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".
  2. 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.
  3. 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.
  4. Performanse:

    • Pristup putem indeksa u Array je obično brži (prosečno O(1)).
    • Pretraživanje elementa u Set ili po ključu u Dictionary je obično brže (prosečno O(1)) u poređenju sa pretraživanjem u Array (O(n)).

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]