Junior
Σε ποιες περιπτώσεις πρέπει να χρησιμοποιείτε Set αντί για Array;
sobes.tech AI
Απάντηση από AI
Το Set πρέπει να χρησιμοποιείται όταν οι ακόλουθες πτυχές είναι σημαντικές:
- Μοναδικότητα στοιχείων: Το Set από τη φύση του δεν επιτρέπει διπλά στοιχεία. Αν χρειάζεστε ένα σύνολο μοναδικών τιμών, μια Array θα απαιτήσει πρόσθετη λογική για φιλτράρισμα.
- Υψηλή απόδοση σε λειτουργίες ιδιοκτησίας (έλεγχος ύπαρξης): Ο έλεγχος αν ένα Set περιέχει ένα συγκεκριμένο στοιχείο έχει μέση πολυπλοκότητα O(1) (αποζημίωση), ενώ για μια Array είναι O(n).
- Υψηλή απόδοση σε λειτουργίες εισαγωγής και διαγραφής: Η εισαγωγή και διαγραφή στοιχείων με βάση την τιμή σε ένα Set έχουν επίσης γενικά μέση πολυπλοκότητα κοντά στο O(1), ενώ σε μια Array μπορεί να φτάσει το O(n) σε περιπτώσεις εισαγωγής/διαγραφής που δεν γίνονται στο τέλος.
- Δεν απαιτείται διατήρηση της σειράς των στοιχείων: Ένα Set δεν εγγυάται καμία συγκεκριμένη σειρά των στοιχείων. Αν η σειρά είναι σημαντική, χρησιμοποιήστε μια Array.
Τυπικά σενάρια χρήσης Set:
- Αποθήκευση ενός συνόλου μοναδικών αναγνωριστικών.
- Φιλτράρισμα διπλότυπων από μια συλλογή.
- Αποτελεσματική εκτέλεση λειτουργιών συνόλων, όπως ένωση, τομή και διαφορά.
- Γρήγορος έλεγχος ύπαρξης ενός στοιχείου στη συλλογή.
Παράδειγμα λήψης μοναδικών στοιχείων από μια Array με τη χρήση Set:
let numbers = [1, 2, 3, 2, 4, 1, 5]
let uniqueNumbers = Set(numbers) // {1, 2, 3, 4, 5} - η σειρά δεν εγγυάταιται