Junior — Middle
Como implementar o armazenamento de elementos num conjunto com suporte para a ordem de sua sequência?
sobes.tech IA
Resposta da IA
Para armazenar elementos em um conjunto mantendo a ordem de adição no iOS (Swift), pode-se usar uma estrutura de dados que combina as propriedades de um conjunto e de um array. Na biblioteca padrão do Swift, há um tipo chamado OrderedSet, a partir do iOS 13 e macOS 10.15, que faz exatamente isso — armazena elementos únicos e mantém sua ordem.
Exemplo de uso do OrderedSet:
import Foundation
var orderedSet = OrderedSet<String>()
orderedSet.append("apple")
orderedSet.append("banana")
orderedSet.append("apple") // não será adicionado, pois o elemento já existe
print(orderedSet) // ["apple", "banana"]
Se o OrderedSet não estiver disponível, pode-se implementar um comportamento semelhante usando um array para a ordem e um conjunto para verificar a unicidade:
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"]
Dessa forma, você mantém a ordem de adição e a unicidade dos elementos.