Sobes.tech
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 :

  1. 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".
  2. 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é.
  3. 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.
  4. Performance :

    • L'accès par indice dans Array est généralement plus rapide (O(1) en moyenne).
    • La recherche d'un élément dans Set ou par clé dans Dictionary est généralement plus rapide (O(1) en moyenne) comparé à la recherche dans Array (O(n)).

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]