Sobes.tech
Junior — Middle

Как да реализираме съхранението на елементи в множество с поддръжка на реда им?

sobes.tech AI

Отговор от AI

За съхраняване на елементи в множество с запазване на реда на добавяне в iOS (Swift), може да използвате структура от данни, която съчетава свойствата на множество и масив. В стандартната библиотека на Swift има тип, наречен OrderedSet, който от iOS 13 и macOS 10.15 насам прави точно това — съхранява уникални елементи и запазва техния ред.

Пример за използване на OrderedSet:

import Foundation

var orderedSet = OrderedSet<String>()
orderedSet.append("apple")
orderedSet.append("banana")
orderedSet.append("apple") // няма да бъде добавен, тъй като вече съществува

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

Ако OrderedSet не е наличен, може да реализирате подобно поведение, използвайки масив за реда и множество за проверка на уникалността:

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

По този начин запазвате реда на добавяне и уникалността на елементите.