Junior
Πότε πρέπει να χρησιμοποιείτε Set αντί για Array;
sobes.tech AI
Απάντηση από AI
Το Set πρέπει να χρησιμοποιείται στις ακόλουθες περιπτώσεις:
- Ανάγκη αποθήκευσης μόνο μοναδικών στοιχείων. Το
Setδιασφαλίζει αυτόματα ότι κάθε στοιχείο υπάρχει στη συλλογή το πολύ μία φορά. - Υψηλή απόδοση στον έλεγχο ύπαρξης ενός στοιχείου. Η λειτουργία
contains(_:)στοSetέχει μέση ωμική πολυπλοκότητα O(1), ενώ στοArrayείναι O(n). - Η σειρά των στοιχείων δεν έχει σημασία. Σε αντίθεση με το
Array, τοSetδεν εγγυάται μια συγκεκριμένη σειρά κατά την επανάληψη των στοιχείων του. - Απαιτούνται συχνές λειτουργίες προσθήκης, διαγραφής και ελέγχου ύπαρξης. Αυτές οι λειτουργίες στο
Setείναι γενικά πιο αποδοτικές από τοArrayγια μεγάλες συλλογές, αν η σειρά δεν έχει σημασία και απαιτείται μοναδικότητα.
Παράδειγμα κώδικα που δείχνει τη διαφορά στην αναζήτηση:
// Array
let array = [1, 2, 3, 4, 5]
let element = 5
// Αναζήτηση σε Array - γραμμική αναζήτηση (O(n))
let isPresentInArray = array.contains(element)
// Set
let set: Set = [1, 2, 3, 4, 5]
// Αναζήτηση σε Set - hashing (μέσος όρος O(1))
let isPresentInSet = set.contains(element)