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:
-
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".
-
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.
-
Unicitatea elementelor:
Array: Poate conține elemente duplicate.Set: Conține doar elemente unice.Dictionary: Cheile trebuie să fie unice, valorile pot fi repetate.
-
Performanță:
- Accesul după index în
Arrayeste de obicei mai rapid (O(1) în medie). - Căutarea unui element în
Setsau după cheie înDictionaryeste de obicei mai rapidă (O(1) în medie) comparativ cu căutarea înArray(O(n)).
- Accesul după index î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]