Sobes.tech
Junior — Middle

Hoe implementeer je het opslaan van elementen in een verzameling met ondersteuning voor de volgorde van hun volgorde?

sobes.tech AI

Antwoord van AI

Om elementen in een verzameling op te slaan met behoud van de volgorde waarin ze zijn toegevoegd in iOS (Swift), kun je een datastructuur gebruiken die eigenschappen van een verzameling en een array combineert. In de standaardbibliotheek van Swift is er een type genaamd OrderedSet, vanaf iOS 13 en macOS 10.15, dat precies dat doet — het slaat unieke elementen op en behoudt hun volgorde.

Voorbeeld van gebruik van OrderedSet:

import Foundation

var orderedSet = OrderedSet<String>()
orderedSet.append("apple")
orderedSet.append("banana")
orderedSet.append("apple") // wordt niet toegevoegd, omdat het element al bestaat

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

Als OrderedSet niet beschikbaar is, kun je een vergelijkbaar gedrag implementeren door een array te gebruiken voor de volgorde en een set voor het controleren van uniciteit:

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"]

Op deze manier behoud je de volgorde van toevoegen en de uniciteit van de elementen.