Sobes.tech
Junior

Care este diferența dintre colecții și array-uri?

sobes.tech AI

Răspuns de la AI

În Swift, nu există un tip separat numit "colecție". Există protocolul Collection, la care corespund diferite tipuri, inclusiv Array, Set și Dictionary.

Principalele diferențe între Array și alte tipuri care respectă protocolul Collection:

  1. Ordinea elementelor:

    • Array: Colecție ordonată. Elementele sunt stocate într-o anumită ordine și sunt accesibile prin index.
    • Set: Colecție neordonată de elemente unice.
    • Dictionary: Colecție neordonată de perechi "cheie-valoare".
  2. Accesul după index:

    • Array: Suportă accesul la elemente printr-un index întreg.
    • Set: Nu suportă accesul direct după index.
    • Dictionary: Accesul la valori se face prin cheie.
  3. Unicitatea elementelor:

    • Array: Poate conține elemente duplicate.
    • Set: Conține doar elemente unice.
    • Dictionary: Cheile trebuie să fie unice, valorile pot fi repetate.
  4. Performanță:

    • Accesul după index în Array este de obicei mai rapid (O(1) în medie).
    • Căutarea unui element în Set sau după cheie în Dictionary este de obicei mai rapidă (O(1) în medie) comparativ cu căutarea în Array (O(n)).

Exemplu de utilizare a Array:

// Crearea unui array de șiruri
var names: [String] = ["Alice", "Bob", "Charlie"]

// Accesul la un element după index
let firstPerson = names[0] // "Alice"

// Adăugarea unui element
names.append("David") // ["Alice", "Bob", "Charlie", "David"]

Exemplu de utilizare a Set:

// Crearea unui set de numere întregi
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - duplicat eliminat

// Verificarea dacă conține un element
let containsThree = uniqueNumbers.contains(3) // true

Exemplu de utilizare a Dictionary:

// Crearea unui dicționar "nume - vârstă"
var ages: [String: Int] = ["Alice": 30, "Bob": 25]

// Accesul la o valoare după cheie
let aliceAge = ages["Alice"] // 30

// Adăugarea unui nou cuplu
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]