Διαφορά κλειδιού: Στην επιστήμη των υπολογιστών, ένα hashTable ή ένα hashMap αναφέρεται σε μια δομή δεδομένων που συνδέει τα κλειδιά (ονόματα) με τις τιμές (χαρακτηριστικά). Στην Java, υπάρχουν κάποιες σημαντικές διαφορές μεταξύ των δύο: Το HashTable είναι συγχρονισμένο και το HashMap είναι ασύγχρονη. Ένα HashTable δεν επιτρέπει τα πλήκτρα null. Ωστόσο, ένα HashMap επιτρέπει ένα μόνο μηδενικό κλειδί και οποιουσδήποτε αριθμούς μηδενικών τιμών.
Το HashMap και το hashTable είναι δομές δεδομένων που αποτελούν μέρη της συλλογής Java. Χρησιμοποιούν ζεύγη κλειδιών-τιμών για την αποθήκευση αντικειμένων. Και οι δύο μοιράζονται κάποιες ομοιότητες, όπως και οι δύο υλοποιούν τη διεπαφή java.util.Map και και οι δύο λειτουργούν με βάση την αρχή του hashing. Ωστόσο, όταν αναφερόμαστε σε αυτά στο πλαίσιο της γλώσσας προγραμματισμού Java, υπάρχουν πολλές διαφορές μεταξύ των δύο.
Ένα hashTable χρησιμοποιείται για την αποθήκευση και την ανάκτηση μιας τιμής χρησιμοποιώντας ένα κλειδί. Για το σκοπό αυτό, το κλειδί πρέπει να είναι μοναδικό. Ο πίνακας που χρησιμοποιείται για την αποθήκευση των ζευγών κλειδιών και τιμών είναι γνωστός ως πίνακας κατακερματισμού. Ένας πίνακας κατακερματισμού σχηματίζεται χρησιμοποιώντας έναν αλγόριθμο που έχει τα κλειδιά. Αυτή η λειτουργία κατακερματισμού χρησιμοποιείται για την εκχώρηση αριθμών στα δεδομένα εισόδου και στη συνέχεια τα δεδομένα αποθηκεύονται ως δείκτης συστοιχίας που αντιστοιχεί στον υπολογιζόμενο ή εκτιμώμενο αριθμό.
Σύγκριση μεταξύ του HashMap και του HashTable:
HashMap | HashTable | |
Συγχρονισμός | Δεν είναι συγχρονισμένο | Είναι συγχρονισμένο (ασφαλές για τα νήματα) |
Null Values | Επιτρέπει μηδενικές τιμές ως κλειδί και αξία | Δεν επιτρέπει nulls |
Εισαγωγή στη java | Java έκδοση 1.2 | Πρώτη έκδοση του κιτ ανάπτυξης Java |
Εκτέλεση | Συγκριτικά καλύτερα | Συγκριτικά φτωχές |
Επεκτείνει | Επεκτείνει την κλάση AbstractMap | Επεκτείνει μια κατηγορία λεξικών που είναι αρκετά παλιά |
Επανάληψη των κλειδιών | Το Iterator χρησιμοποιείται για την αντικατάσταση των πλήκτρων | Η διεπαφή απαρίθμησης χρησιμοποιείται για τα πλήκτρα επανάληψης |
Εφαρμογές | Καλύτερα για εφαρμογές χωρίς σπείρωμα | Γενικά, ασφαλής για εφαρμογές πολλαπλών χρήσεων |
Σειρά | Δεν έχει σειριοποιηθεί | Σειρά |
Εναλλακτική λύση | Κάποιος μπορεί να χρησιμοποιήσει ταυτόχρονο hashMap για περιβάλλον πολλαπλών νημάτων | Δεν υπάρχει τέτοια εναλλακτική λύση |