Junior
¿Cuál es la diferencia entre colecciones y arreglos?
sobes.tech AI
Respuesta de la IA
En Swift no existe un tipo separado de "colección". Existe el protocolo Collection, al cual corresponden varios tipos, incluyendo Array, Set y Dictionary.
Las principales diferencias entre Array y otros tipos que cumplen con el protocolo Collection:
-
Orden de los elementos:
Array: Colección ordenada. Los elementos se almacenan en un orden definido y se accede a ellos por índice.Set: Colección no ordenada de elementos únicos.Dictionary: Colección no ordenada de pares "clave-valor".
-
Acceso por índice:
Array: Permite acceso a los elementos mediante un índice entero.Set: No soporta acceso directo por índice.Dictionary: El acceso a los valores se realiza mediante la clave.
-
Unicidad de los elementos:
Array: Puede contener elementos duplicados.Set: Solo contiene elementos únicos.Dictionary: Las claves deben ser únicas, los valores pueden repetirse.
-
Rendimiento:
- El acceso por índice en
Arraysuele ser más rápido (O(1) en promedio). - La búsqueda de un elemento en
Seto por clave enDictionarysuele ser más rápida (O(1) en promedio) en comparación con la búsqueda enArray(O(n)).
- El acceso por índice en
Ejemplo de uso de Array:
// Creación de un array de cadenas
var names: [String] = ["Alice", "Bob", "Charlie"]
// Acceso a un elemento por índice
let firstPerson = names[0] // "Alice"
// Añadir un elemento
names.append("David") // ["Alice", "Bob", "Charlie", "David"]
Ejemplo de uso de Set:
// Creación de un conjunto de números enteros
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - duplicado eliminado
// Comprobación de si contiene un elemento
let containsThree = uniqueNumbers.contains(3) // true
Ejemplo de uso de Dictionary:
// Creación de un diccionario "nombre - edad"
var ages: [String: Int] = ["Alice": 30, "Bob": 25]
// Acceso a un valor mediante la clave
let aliceAge = ages["Alice"] // 30
// Añadir una nueva pareja
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]