Πώς καθορίζεται το μέγεθος του πίνακα κατακερματισμού;
sobes.tech AI
Απάντηση από AI
Το μέγεθος του πίνακα κατακερματισμού (η χωρητικότητά του) καθορίζεται συνήθως κατά τη δημιουργία μιας στιγμής της κλάσης. Συχνά, αυτό γίνεται ορίζοντας την αρχική χωρητικότητα στον κατασκευαστή.
Εάν η αρχική χωρητικότητα δεν καθοριστεί, χρησιμοποιείται μια προεπιλεγμένη τιμή (π.χ., 16 για το HashMap στη Java).
Κατά την προσθήκη στοιχείων, εάν ο αριθμός των στοιχείων υπερβαίνει το γινόμενο της τρέχουσας χωρητικότητας με τον παράγοντα φόρτωσης (load factor, προεπιλογή 0.75), ο πίνακας κατακερματισμού αυξάνει αυτόματα το μέγεθός του (συνήθως διπλασιάζεται) και επαναϋπολογίζει τα hashes όλων των στοιχείων (rehashing).
Παράδειγμα κατασκευαστή με καθορισμό αρχικής χωρητικότητας:
// Δημιουργία HashMap με αρχική χωρητικότητα 32
Map<String, Integer> map = new HashMap<>(32);
Έτσι, το μέγεθος ρυθμίζεται δυναμικά βάσει της αρχικής διαμόρφωσης και του τρέχοντος φορτίου.