Junior
Qual è la differenza tra collezioni e array?
sobes.tech AI
Risposta dell'AI
In Swift non esiste un tipo separato chiamato "collezione". Esiste il protocollo Collection, a cui corrispondono vari tipi, tra cui Array, Set e Dictionary.
Le principali differenze tra Array e altri tipi conformi al protocollo Collection:
-
Ordine degli elementi:
Array: Collezione ordinata. Gli elementi sono memorizzati in un ordine definito e accessibili tramite indice.Set: Collezione non ordinata di elementi unici.Dictionary: Collezione non ordinata di coppie "chiave-valore".
-
Accesso tramite indice:
Array: Supporta l'accesso agli elementi tramite un indice intero.Set: Non supporta l'accesso diretto tramite indice.Dictionary: L'accesso ai valori avviene tramite la chiave.
-
Unicità degli elementi:
Array: Può contenere elementi duplicati.Set: Contiene solo elementi unici.Dictionary: Le chiavi devono essere uniche, i valori possono ripetersi.
-
Performance:
- L'accesso tramite indice in
Arrayè generalmente più veloce (O(1) in media). - La ricerca di un elemento in
Seto tramite chiave inDictionaryè generalmente più veloce (O(1) in media) rispetto alla ricerca inArray(O(n)).
- L'accesso tramite indice in
Esempio di utilizzo di Array:
// Creazione di un array di stringhe
var names: [String] = ["Alice", "Bob", "Charlie"]
// Accesso a un elemento tramite indice
let firstPerson = names[0] // "Alice"
// Aggiunta di un elemento
names.append("David") // ["Alice", "Bob", "Charlie", "David"]
Esempio di utilizzo di Set:
// Creazione di un insieme di numeri interi
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - duplicato rimosso
// Verifica se contiene un elemento
let containsThree = uniqueNumbers.contains(3) // true
Esempio di utilizzo di Dictionary:
// Creazione di un dizionario "nome - età"
var ages: [String: Int] = ["Alice": 30, "Bob": 25]
// Accesso a un valore tramite la chiave
let aliceAge = ages["Alice"] // 30
// Aggiunta di una nuova coppia
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]