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