Junior
Quelle est la différence entre collections et tableaux?
sobes.tech IA
Réponse de l'IA
En Swift, il n'existe pas de type séparé appelé "collection". Il existe le protocole Collection, auquel correspondent différents types, notamment Array, Set et Dictionary.
Les principales différences entre Array et les autres types conformes au protocole Collection :
-
Ordre des éléments :
Array: Collection ordonnée. Les éléments sont stockés dans un ordre défini et accessibles par indice.Set: Collection non ordonnée d'éléments uniques.Dictionary: Collection non ordonnée de paires "clé-valeur".
-
Accès par indice :
Array: Permet l'accès aux éléments par un indice entier.Set: Ne supporte pas l'accès direct par indice.Dictionary: L'accès aux valeurs se fait par la clé.
-
Unicité des éléments :
Array: Peut contenir des éléments en double.Set: Ne contient que des éléments uniques.Dictionary: Les clés doivent être uniques, les valeurs peuvent se répéter.
-
Performance :
- L'accès par indice dans
Arrayest généralement plus rapide (O(1) en moyenne). - La recherche d'un élément dans
Setou par clé dansDictionaryest généralement plus rapide (O(1) en moyenne) comparé à la recherche dansArray(O(n)).
- L'accès par indice dans
Exemple d'utilisation de Array :
// Création d'un tableau de chaînes
var names: [String] = ["Alice", "Bob", "Charlie"]
// Accès à un élément par indice
let firstPerson = names[0] // "Alice"
// Ajout d'un élément
names.append("David") // ["Alice", "Bob", "Charlie", "David"]
Exemple d'utilisation de Set :
// Création d'un ensemble de nombres entiers
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - doublon supprimé
// Vérification de la présence d'un élément
let containsThree = uniqueNumbers.contains(3) // true
Exemple d'utilisation de Dictionary :
// Création d'un dictionnaire "nom - âge"
var ages: [String: Int] = ["Alice": 30, "Bob": 25]
// Accès à une valeur par la clé
let aliceAge = ages["Alice"] // 30
// Ajout d'une nouvelle paire
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]