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

Այսպիսով՝ պահպանում եք ավելացման հերթականությունը և տարրերի եզակիությունը։