Διαφορά μεταξύ HashMap και TreeMap

Πίνακας περιεχομένων:

Διαφορά μεταξύ HashMap και TreeMap
Διαφορά μεταξύ HashMap και TreeMap

Βίντεο: Διαφορά μεταξύ HashMap και TreeMap

Βίντεο: Διαφορά μεταξύ HashMap και TreeMap
Βίντεο: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов. 2024, Δεκέμβριος
Anonim

Βασική διαφορά – HashMap εναντίον TreeMap

Στον προγραμματισμό, υπάρχουν διάφοροι μηχανισμοί συλλογής δεδομένων. Οι συλλογές είναι μια μέθοδος αποθήκευσης δεδομένων. Γλώσσες προγραμματισμού όπως η Java χρησιμοποιούν Συλλογές. Είναι ένα πλαίσιο με κλάσεις και διεπαφές για την αποθήκευση και το χειρισμό ενός συνόλου στοιχείων δεδομένων. Σε έναν κανονικό πίνακα, υπάρχει ένας σταθερός αριθμός στοιχείων προς αποθήκευση. Αυτός είναι ένας περιορισμός των πινάκων. Αντίθετα, ο προγραμματιστής μπορεί να χρησιμοποιήσει συλλογές. Λειτουργίες όπως εισαγωγή, διαγραφή, ταξινόμηση και αναζήτηση μπορούν να εκτελεστούν χρησιμοποιώντας συλλογές. Στην Java, η διεπαφή χάρτη ανήκει σε συλλογές. Ο χάρτης χρησιμοποιείται για την αναπαράσταση δεδομένων στα ζεύγη κλειδιών, τιμών. Υπάρχουν μόνο μοναδικά κλειδιά και το καθένα έχει την αντίστοιχη τιμή. Το HashMap και το TreeMap είναι κλάσεις που υλοποιούν τη διεπαφή χάρτη. Το HashMap είναι μια κλάση συλλογής που βασίζεται σε χάρτη και χρησιμοποιείται για την αποθήκευση ζευγών κλειδιών και τιμών που δεν διατηρούν συγκεκριμένη σειρά στα στοιχεία δεδομένων. Το TreeMap είναι μια κλάση συλλογής που βασίζεται σε χάρτη και χρησιμοποιείται για την αποθήκευση ζευγών κλειδιών και τιμών που διατηρούν την αύξουσα σειρά των στοιχείων δεδομένων. Η βασική διαφορά μεταξύ HashMap και TreeMap είναι ότι το HashMap δεν διατηρεί μια συγκεκριμένη σειρά στα στοιχεία δεδομένων ενώ το TreeMap διατηρεί την αύξουσα σειρά των στοιχείων δεδομένων.

Τι είναι το HashMap;

Το HashMap είναι μια κλάση που υλοποιεί τη διεπαφή χάρτη. Επεκτείνει την κλάση AbstractMap και υλοποιεί τη διεπαφή χάρτη. Ένας HashMap περιέχει τα ζεύγη κλειδιών, τιμών. Κάθε στοιχείο είναι μοναδικό. Είναι εύκολο να βρείτε τα στοιχεία στο HashMap χρησιμοποιώντας το κλειδί. Η δήλωση ενός HashMap είναι η εξής.

δημόσια κλάση HashMap επεκτείνει AbstractMap υλοποιεί χάρτη, Cloneable, Serializable

Το K αναφέρεται στο κλειδί ενώ το V αναφέρεται στην τιμή που αντιστοιχεί στο συγκεκριμένο κλειδί. Κάθε ζεύγος κλειδιών, τιμών είναι μια καταχώρηση του HashMap.

Διαφορά μεταξύ HashMap και TreeMap
Διαφορά μεταξύ HashMap και TreeMap

Εικόνα 01: Διασύνδεση χάρτη

Υποθέστε ένα σενάριο ως εξής για να κατανοήσετε το HaspMap. Εάν εκεί ο προγραμματιστής θέλει να αποθηκεύσει ένα σύνολο ονομάτων μαθητών και αντίστοιχους αριθμούς ευρετηρίου, μπορεί να χρησιμοποιήσει το HashMap. Τα ονόματα των μαθητών χρησιμοποιούνται για την εύρεση των αριθμών ευρετηρίου. Επομένως, τα ονόματα των μαθητών είναι τα κλειδιά ενώ οι αριθμοί ευρετηρίου είναι οι τιμές.

Διαφορά μεταξύ HashMap και TreeMap _Εικόνα 02
Διαφορά μεταξύ HashMap και TreeMap _Εικόνα 02

Εικόνα 02: Πρόγραμμα HashMap με χρήση Java

Σύμφωνα με το παραπάνω πρόγραμμα, δημιουργείται ένα αντικείμενο του HashMap. Στη συνέχεια, ο προγραμματιστής μπορεί να προσθέσει στοιχεία χρησιμοποιώντας αυτό το αντικείμενο. Οι τιμές μπορούν να εισαχθούν χρησιμοποιώντας τη μέθοδο put. Για να ανακτήσει τις τιμές, ο προγραμματιστής θα πρέπει να χρησιμοποιήσει τη μέθοδο λήψης με το κλειδί. Όταν χρησιμοποιείτε studentList.get(“150”); θα εκτυπώσει το αντίστοιχο όνομα σε εκείνο το ευρετήριο που είναι Ann. Εάν ο προγραμματιστής θέλει να λάβει όλες τις τιμές, τότε μπορεί να χρησιμοποιήσει το Map. Entry για να εκτυπώσει όλα τα κλειδιά και τις τιμές. Κατά την παρατήρηση της εξόδου, μπορεί να φανεί ότι το HashMap δεν διατηρεί μια συγκεκριμένη σειρά. Δεν εκτυπώνει τα στοιχεία με τη σειρά που έχει εισαχθεί. Τα στοιχεία εκτυπώνονται με τυχαία σειρά.

Τι είναι το TreeMap;

Το TreeMap είναι μια κλάση στη Java που υλοποιεί τη διεπαφή χάρτη. Παρόμοια με ένα HashMap, χρησιμοποιείται επίσης για την αποθήκευση ζευγών κλειδιών, τιμών αλλά με αύξουσα σειρά. Το TreeMap υλοποιεί το NavigableMap και το NavigableMap επεκτείνει το SortedMap και το SortedMap επεκτείνει τον χάρτη. Κάθε στοιχείο είναι μοναδικό. Η δήλωση ενός TreeMap είναι η εξής.

δημόσια κλάση TreeMap επεκτείνει AbstractMap υλοποιεί NavigableMap, Cloneable, Serializable

Το K αναφέρεται στο κλειδί ενώ το V αναφέρεται στην τιμή που αντιστοιχεί στο συγκεκριμένο κλειδί. Κάθε ζεύγος κλειδιών, τιμών είναι μια καταχώρηση του TreeMap.

Βασική διαφορά μεταξύ HashMap και TreeMap
Βασική διαφορά μεταξύ HashMap και TreeMap

Εικόνα 03: Πρόγραμμα TreeMap με χρήση Java

Σύμφωνα με το παραπάνω πρόγραμμα, δημιουργείται ένα αντικείμενο του TreeMap. Στη συνέχεια, ο προγραμματιστής μπορεί να προσθέσει στοιχεία χρησιμοποιώντας αυτό το αντικείμενο. Οι τιμές μπορούν να εισαχθούν χρησιμοποιώντας τη μέθοδο put. Για να ανακτήσει τις τιμές, ο προγραμματιστής θα πρέπει να χρησιμοποιήσει τη μέθοδο λήψης με το κλειδί. Όταν χρησιμοποιείτε studentList.get(“150”); θα εκτυπώσει το αντίστοιχο όνομα σε εκείνο το ευρετήριο που είναι Ann. Εάν ο προγραμματιστής θέλει να λάβει όλες τις τιμές, τότε μπορεί να χρησιμοποιήσει το Map. Entry για να εκτυπώσει όλα τα κλειδιά και τις τιμές. Κατά την παρατήρηση της εξόδου, μπορεί να φανεί ότι το TreeMap διατηρεί μια συγκεκριμένη σειρά. Τα στοιχεία εκτυπώνονται με αύξουσα σειρά.

Ποιες είναι οι ομοιότητες μεταξύ HashMap και TreeMap;

  • Τόσο το HashMap όσο και το TreeMap υλοποιούν τη διεπαφή χάρτη.
  • Τόσο το HashMap όσο και το TreeMap μπορούν να αποθηκεύσουν και να χειριστούν πολλά στοιχεία.
  • Τόσο το HashMap όσο και το TreeMap περιέχουν ζεύγη κλειδιών και τιμών.
  • Τόσο το HashMap όσο και το TreeMap μπορούν να έχουν πολλές μηδενικές τιμές.
  • Δεν υπάρχει περιορισμός στον αριθμό των στοιχείων που μπορούν να αποθηκευτούν τόσο στο HashMap όσο και στο TreeMap.

Ποια είναι η διαφορά μεταξύ HashMap και TreeMap;

HashMap vs TreeMap

Ένα HashMap είναι μια κλάση συλλογής βάσει χάρτη που χρησιμοποιείται για την αποθήκευση ζευγών κλειδιών και τιμών που δεν διατηρούν συγκεκριμένη σειρά στα στοιχεία δεδομένων. A TreeMap είναι μια κλάση συλλογής βάσει χάρτη που χρησιμοποιείται για την αποθήκευση ζευγών κλειδιών και τιμών που διατηρεί την αύξουσα σειρά των στοιχείων δεδομένων.
Παραγγελία
Το HashMap δεν διατηρεί την παραγγελία. Ο TreeMap διατηρεί την αύξουσα σειρά.
Μηδενικό κλειδί
Ο HashMap μπορεί να περιέχει ένα μηδενικό κλειδί. Ο TreeMap δεν μπορεί να έχει μηδενικό κλειδί.
Απόδοση
Το HashMap είναι πιο γρήγορο από το TreeMap. Το TreeMap είναι πιο αργό από το HashMap.

Σύνοψη – HashMap vs TreeMap

Γλώσσες προγραμματισμού όπως η Java περιέχουν το πλαίσιο συλλογής. Σε πίνακες, μπορεί να υπάρχει ένας σταθερός αριθμός στοιχείων. Επομένως, το μέγεθος του πίνακα πρέπει να αρχικοποιηθεί στην αρχή. Σε συλλογές, ο προγραμματιστής μπορεί να αποθηκεύσει πολλά στοιχεία όπως απαιτείται. Δεν υπάρχει συγκεκριμένο ποσό για αποθήκευση. Ο χάρτης είναι μια διεπαφή που ανήκει στο πλαίσιο συλλογής. Το HashMap είναι μια κλάση συλλογής που βασίζεται σε χάρτη και χρησιμοποιείται για την αποθήκευση ζευγών κλειδιών και τιμών που δεν διατηρούν συγκεκριμένη σειρά στα στοιχεία δεδομένων. Το TreeMap είναι μια κλάση συλλογής βασισμένη σε χάρτη που χρησιμοποιείται για την αποθήκευση ζευγών κλειδιών και τιμών που διατηρεί την αύξουσα σειρά των στοιχείων δεδομένων. Αυτό το άρθρο εξέτασε τη διαφορά μεταξύ του HashMap και του TreeMap που υλοποιεί τη διεπαφή χάρτη. Η διαφορά μεταξύ HashMap και TreeMap είναι ότι το HashMap δεν διατηρεί μια συγκεκριμένη σειρά στα στοιχεία δεδομένων ενώ το TreeMap διατηρεί την αύξουσα σειρά των στοιχείων δεδομένων.

Συνιστάται: