Sobes.tech
Junior — Middle

Comment implémenter le stockage d'éléments dans un ensemble avec support de l'ordre de leur succession?

sobes.tech IA

Réponse de l'IA

Pour stocker des éléments dans un ensemble tout en conservant l’ordre dans lequel ils ont été ajoutés dans iOS (Swift), on peut utiliser une structure de données combinant les propriétés d’un ensemble et d’un tableau. Dans la bibliothèque standard de Swift, il existe un type appelé OrderedSet, à partir d’iOS 13 et macOS 10.15, qui fait exactement cela — stocke des éléments uniques et conserve leur ordre.

Exemple d’utilisation de OrderedSet :

import Foundation

var orderedSet = OrderedSet<String>()
orderedSet.append("apple")
orderedSet.append("banana")
orderedSet.append("apple") // ne sera pas ajouté, car l’élément existe déjà

print(orderedSet) // ["apple", "banana"]

Si OrderedSet n’est pas disponible, on peut implémenter un comportement similaire en utilisant un tableau pour l’ordre et un ensemble pour vérifier l’unicité :

var array: [String] = []
var set: Set<String> = []

func addElement(_ element: String) {
    if !set.contains(element) {
        set.insert(element)
        array.append(element)
    }
}

addElement("apple")
addElement("banana")
addElement("apple")

print(array) // ["apple", "banana"]

Ainsi, vous conservez l’ordre d’ajout et l’unicité des éléments.