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.