Σε επίπεδο εισόδου, ένα από τα πιο συχνά ερωτηθέντα είναι για Java HashMap εναντίον Hashtable. Επομένως, πρέπει να είστε πλήρως προετοιμασμένοι να απαντήσετε σε οτιδήποτε σχετίζεται HashMap ή Hashtable. Η Java χρησιμοποιεί τα HashMap και Hashtable για την αποθήκευση δεδομένων με τη μορφή κλειδί και αξίες . Έτσι, αυτό το άρθρο θα σας βοηθήσει να γνωρίζετε τις μεγάλες διαφορές μεταξύ αυτών των δύο.
Θα συζητήσω τα θέματα με την ακόλουθη σειρά:
- Τι είναι το HashMap;
- Τι είναι το Hashtable;
- HashMap εναντίον Hashtable
- Πότε να χρησιμοποιήσετε το HashMap και το Hashtable;
Ας ξεκινήσουμε!
Τι είναι το HashMap;
HashMap είναι μια τάξη συλλογής βάσει χάρτη στο που χρησιμοποιείται για την αποθήκευση δεδομένων σε ζεύγη κλειδιών και τιμών. Βοηθά στην εφαρμογή της διασύνδεσης χάρτη στην Java. Είναι βασικά ένα μέρος του από την Java έκδοση 1.2 και παρέχει τη βασική εφαρμογή της διασύνδεσης χάρτη στην Java. Για να αποκτήσετε πρόσβαση σε μια τιμή στο HashMap, πρέπει να το γνωρίζετε Κλειδί .
πώς να χρησιμοποιήσετε την κλάση σαρωτή
Ονομάζεται HashMap επειδή χρησιμοποιεί μια τεχνική που ονομάζεται Κατακερματισμός . Το κατακερματισμό είναι μια διαδικασία μετατροπής ενός μεγάλου σε μικρότερο διατηρώντας την τιμή της συμβολοσειράς ως σταθερή. Η προκύπτουσα συμπιεσμένη τιμή βοηθά στην ευρετηρίαση και ταχύτερες αναζητήσεις.
Τι είναι το Hashtable;
Ένα Hashtable είναι ένα δομή δεδομένων που χρησιμοποιείται για την αποθήκευση κλειδιών / ζευγών τιμών. Σε Hashtable, τα δεδομένα αποθηκεύονται σε μορφή πίνακα, όπου κάθε τιμή δεδομένων έχει τη δική της μοναδική τιμή ευρετηρίου. Μπορείτε να έχετε πρόσβαση σε δεδομένα πολύ γρήγορα εάν γνωρίζετε το ευρετήριο των επιθυμητών δεδομένων.
Η κλάση Java Hashtable εφαρμόζει ένα hashtable, που χαρτογραφεί κλειδιά σε τιμές. Κληρονομεί την κατηγορία Λεξικό και εφαρμόζει τη διασύνδεση του Χάρτη.
Διακήρυξη Hashtable
Η δημόσια τάξη επεκτείνει το Hashtable υλοποιεί το Map, Cloneable, Serializable
ΠΡΟΣ ΤΟ: Είναι ο τύπος των κλειδιών που από τον χάρτη.
V: Αυτός είναι ο τύπος των αντιστοιχισμένων τιμών.
Τώρα που έχετε καταλάβει πώς λειτουργεί το HashMap και το Hashtable στην Java, ας ρίξουμε μια ματιά στις παραμέτρους για να κατανοήσουμε τις διαφορές μεταξύ HashMap και Hashtable.
Τώρα ας επισημάνουμε τις σημαντικές διαφορές μεταξύ του HashMap και του Hashtable.
Java HashMap εναντίον Hashtable
Παράμετροι | HashMap | Hashtable |
Συγχρονισμός | Μη συγχρονισμένη έννοια ότι δεν είναι ασφαλές για νήματα και δεν μπορεί να κοινοποιηθεί σε πολλά νήματα χωρίς κατάλληλο κωδικό συγχρονισμού. | Συγχρονισμός και κοινή χρήση με πολλά νήματα |
Null κλειδιά | Επιτρέπει μόνο ένα μηδενικό κλειδί και πολλές μηδενικές τιμές | Δεν επιτρέπει το μηδενικό κλειδί ή την τιμή του |
Σύστημα παλαιού τύπου | Αυτό είναι μέρος των συλλογών Java | Το Hashtable είναι μια κληρονομιά που δεν ήταν μέρος του αρχικού |
Επαναληπτής | Το Iterator είναι γρήγορο και αποτυγχάνει ταυτόχροναModificationException εάν κάποιο άλλο νήμα προσπαθεί να τροποποιήσει τον χάρτη | Ο απαριθμητής δεν είναι γρήγορος |
Κληρονομική τάξη | Κληρονομικά Περίληψη τάξη | Κληρονομική τάξη λεξικού |
Τώρα, πότε μπορείτε να χρησιμοποιήσετε Java HashMap και Hashtable;
Πότε να χρησιμοποιήσετε το HashMap και το Hashtable;
- Συγχρονισμός είναι η κύρια διαφορά μεταξύ Java HashMap και Hashtable. Αλλά εάν υπάρχει ανάγκη για μια λειτουργία ασφαλή για νήματα, τότε το Hashtable μπορεί να χρησιμοποιηθεί καθώς όλες οι μέθοδοι είναι συγχρονισμένες. Όμως, αυτή είναι μια κληρονομιά τάξη και πρέπει να αποφευχθούν. Αυτό δεν είναι δυνατό από το HashMap.
- Για ένα περιβάλλον πολλαπλών νημάτων, μπορείτε να χρησιμοποιήσετε το ConcurrentHashMap που είναι σχεδόν παρόμοιο με το Hashtable. Εδώ μπορείτε ακόμη και να κάνετε το HashMap συγχρονισμένο ρητά
- Η συγχρονισμένη λειτουργία οδηγεί σε κακή απόδοση, οπότε θα πρέπει να αποφεύγεται έως και εκτός εάν απαιτείται. Ως εκ τούτου, για το περιβάλλον χωρίς νήμα, το HashMap χρησιμοποιείται σίγουρα χωρίς αμφιβολία.
Αυτό μας φέρνει στο τέλος αυτού του άρθρου όπου μάθαμε το διαφορές μεταξύ Java HashMap και Hashtable. Ελπίζω να είστε ξεκάθαροι με αυτό το θέμα.
πώς να βγείτε από μια μέθοδο στο java
Εάν βρήκατε αυτό το άρθρο σχετικά με το 'Java HashMap vs Hashtable', ανατρέξτε στο μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με ένα δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο.
Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή και να σας εκπαιδεύσει τόσο για βασικές όσο και για προχωρημένες ιδέες Java μαζί με διάφορες όπως το Hibernate & Spring.
Εάν συναντήσετε οποιεσδήποτε ερωτήσεις, μη διστάσετε να κάνετε όλες τις ερωτήσεις σας στην ενότητα σχολίων του 'Java HashMap εναντίον Hashtable' και η ομάδα μας θα χαρεί να απαντήσει.