Sobes.tech
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)