Sobes.tech
Junior — Middle

Kaip įgyvendinti elementų saugojimą rinkinyje, palaikant jų sekos tvarką?

sobes.tech AI

Atsakymas iš AI

iOS (Swift) aplinkoje, norint saugoti elementus rinkinyje ir išlaikyti jų pridėjimo tvarką, galima naudoti duomenų struktūrą, kuri sujungia rinkinio ir masyvo savybes. Swift standartinėje bibliotekoje yra tipas OrderedSet, kuris nuo iOS 13 ir macOS 10.15 versijos tai daro — saugo unikalius elementus ir išlaiko jų tvarką.

OrderedSet naudojimo pavyzdys:

import Foundation

var orderedSet = OrderedSet<String>()
orderedSet.append("apple")
orderedSet.append("banana")
orderedSet.append("apple") // nebus pridėta, nes elementas jau yra

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

Jei OrderedSet nėra prieinamas, galima įgyvendinti panašų elgesį naudojant masyvą tvarkai ir rinkinius unikalumui patikrinti:

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

Taip išlaikote pridėjimo tvarką ir elementų unikalumą.