Sobes.tech
Junior — Middle

Hogyan valósítja meg az elemek tárolását egy halmazban, támogatva azok sorrendjét?

sobes.tech MI

Válasz az MI-től

Az iOS (Swift) környezetben az elemek tárolására, miközben megőrzöd azok hozzáadásának sorrendjét, használhatsz olyan adattípust, amely ötvözi a halmaz és a tömb tulajdonságait. A Swift standard könyvtárában létezik az OrderedSet típus, amely iOS 13 és macOS 10.15-től elérhető, és pontosan ezt teszi — tárolja az egyedi elemeket és megőrzi azok sorrendjét.

Az OrderedSet használatának példája:

import Foundation

var orderedSet = OrderedSet<String>()
orderedSet.append("apple")
orderedSet.append("banana")
orderedSet.append("apple") // nem fog hozzáadódni, mert már létezik

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

Ha az OrderedSet nem elérhető, akkor hasonló viselkedést lehet megvalósítani egy tömb és egy halmaz használatával, ahol a tömb megőrzi a sorrendet, a halmaz pedig az egyediséget ellenőrzi:

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

Így megőrzöd a hozzáadás sorrendjét és az elemek egyediségét.