Sobes.tech
Junior — Middle

Jak implementovat ukládání prvků v množině s podporou jejich pořadí?

sobes.tech AI

Odpověď od AI

Pro ukládání prvků do množiny s zachováním pořadí jejich přidání v iOS (Swift) lze použít datovou strukturu, která kombinuje vlastnosti množiny a pole. V standardní knihovně Swift je od iOS 13 a macOS 10.15 dostupný typ OrderedSet, který přesně toto dělá — ukládá unikátní prvky a zachovává jejich pořadí.

Příklad použití OrderedSet:

import Foundation

var orderedSet = OrderedSet<String>()
orderedSet.append("apple")
orderedSet.append("banana")
orderedSet.append("apple") // nebude přidáno, protože prvek již existuje

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

Pokud OrderedSet není dostupný, lze podobné chování implementovat pomocí pole pro pořadí a množiny pro kontrolu unikátnosti:

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

Tímto způsobem zachováváte pořadí přidání a unikátnost prvků.