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

Με αυτόν τον τρόπο, διατηρείτε τη σειρά προσθήκης και τη μοναδικότητα των στοιχείων.