Μια σύντομη εισαγωγή στο TreeMap στην Java με παραδείγματα

Αυτό το άρθρο θα σας δώσει μια λεπτομερή και περιεκτική γνώση του TreeMap στην Java με παραδείγματα μεθόδων και κατασκευαστών.

Η εφαρμογή μιας διασύνδεσης χάρτη στην Java είναι πολύ σημαντική εργασία. Για το σκοπό αυτό, έχουμε Χάρτης δέντρου και HashMap . Σε αυτό το άρθρο θα επικεντρωθούμε στο TreeMap μέσα με την ακόλουθη σειρά:



Τι είναι το TreeMap στην Java;

Ένα TreeMap στην Java χρησιμοποιείται για την εφαρμογή της διασύνδεσης χάρτη και του NavigableMap μαζί με την Abstract Class. Ο χάρτης ταξινομείται σύμφωνα με τη φυσική σειρά των κλειδιών του, ή από έναν Συγκριτή που παρέχεται κατά το χρόνο δημιουργίας χάρτη, ανάλογα με τον κατασκευαστή που χρησιμοποιείται. Αυτό αποδεικνύεται ότι είναι ένας αποτελεσματικός τρόπος ταξινόμησης και αποθήκευσης των ζευγών κλειδιών-τιμών.



πώς να αποτρέψετε το αδιέξοδο στην Java

TreeMap-in-JavaΗ εντολή αποθήκευσης που διατηρείται από τον χάρτη πορείας πρέπει να είναι συνεπής με το ίδιο όπως κάθε άλλος ταξινομημένος χάρτης, ανεξάρτητα από τους ρητούς συγκριτές. Ο χάρτηςΗ εφαρμογή δεν συγχρονίζεται με την έννοια ότι εάν ένας χάρτης έχει πρόσβαση σε πολλά νήματα, ταυτόχρονα και τουλάχιστον ένα από τα νήματα τροποποιεί τον χάρτη δομικά, πρέπει να συγχρονίζεται εξωτερικά.

Χαρακτηριστικά του TreeMaps

  • Αυτή η τάξη είναι μέλος του Java Συλλογές Framework.



  • Η τάξη εφαρμόζει διασυνδέσεις χάρτη, συμπεριλαμβανομένων των NavigableMap, SortedMap και επεκτείνει το AbstractMap

  • Το TreeMap στην Java δεν επιτρέπει null πλήκτρα (όπως το Map) και, ως εκ τούτου, ρίχνεται ένα NullPointerException. Ωστόσο, πολλές μηδενικές τιμές μπορούν να συσχετιστούν με διαφορετικά πλήκτρα.

  • Όλα τα ζεύγη του Map.Entry επέστρεψαν με μεθόδους σε αυτήν την τάξη και οι προβολές του αντιπροσωπεύουν στιγμιότυπα χαρτών κατά τη στιγμή της παραγωγής τους.



  • Δεν υποστηρίζουν τη μέθοδο Entry.setValue.

Σημαντικά σημεία που πρέπει να θυμάστε

  1. Εκτός από την εφαρμογή της διασύνδεσης χάρτη, το Java TreeMap υλοποιεί επίσης το NavigableMap και υλοποιεί έμμεσα τη διεπαφή SortedMap. Το TreeMap επεκτείνει επίσης την κλάση AbstractMap.

  2. Οι καταχωρήσεις TreeMap ταξινομούνται με τη φυσική σειρά των κλειδιών του. Παρέχει επίσης έναν κατασκευαστή για να παρέχει το Συγκριτή που θα χρησιμοποιείται για παραγγελία. Έτσι, εάν χρησιμοποιείτε οποιαδήποτε κατηγορία ως κλειδί, βεβαιωθείτε ότι εφαρμόζει το συγκρίσιμο περιβάλλον εργασίας για φυσικές παραγγελίες. Ρίξτε μια ματιά στις ερωτήσεις συνέντευξης συλλογών java για να κατανοήσετε τη σημασία αυτών των μεθόδων.

  3. Η υλοποίηση Java TreeMap παρέχει εγγυημένο κόστος καταγραφής (n) για τις εργασίες containKey, get, put και remove.

    γιατί να μάθω sql
  4. Το TreeMap δεν είναι συγχρονισμένο και ως εκ τούτου δεν είναι ασφαλές για νήματα. Για περιβάλλοντα πολλαπλών νημάτων, μπορείτε να λάβετε ένα τυλιγμένο συγχρονισμένο χρησιμοποιώντας τη μέθοδο Collections.synchronizedSortedMap.

  5. Οι μέθοδοι TreeMap για τη λήψη του κλειδιού και των τιμών επιστρέφουν Iterator που είναι γρήγορος στη φύση, οπότε οποιαδήποτε ταυτόχρονη τροποποίηση θα ρίξει το ConcurrentModificationException.

  6. Το TreeMap στην Java δεν επιτρέπει null κλειδιά, ωστόσο, μπορείτε να έχετε πολλές τιμές null που σχετίζονται με διαφορετικά κλειδιά.

Κατασκευαστές στο TreeMap

Οικοδόμος Περιγραφή
Χάρτης δέντρου () Κατασκευάζει έναν κενό χάρτη πορείας που θα ταξινομηθεί χρησιμοποιώντας τη φυσική σειρά των κλειδιών του.
TreeMap (Comparator comp) Κατασκευάζει έναν κενό χάρτη που δεν βασίζεται σε δέντρο και θα ταξινομηθεί χρησιμοποιώντας το Comparator comp.
TreeMap (Χάρτης m) Αρχικοποιεί έναν χάρτη πορείας με τις καταχωρήσεις από το m, οι οποίες θα ταξινομηθούν χρησιμοποιώντας τη φυσική σειρά των πλήκτρων.
TreeMap (Ταξινομημένος χάρτης sm) Ξεκινά ένα χάρτη πορείας με τις καταχωρήσεις από το SortedMap sm, το οποίο θα ταξινομηθεί με την ίδια σειρά με το sm.

Μέθοδοι στο TreeMap

Μέθοδος Περιγραφή
κενό καθαρό () Καταργεί όλες τις αντιστοιχίσεις από αυτό το TreeMap.
Αντικείμενο κλώνου () Επιστρέφει ένα ρηχό αντίγραφο αυτής της παρουσίας TreeMap.
Συγκριτικός συγκριτής () Επιστρέφει το συγκριτικό που χρησιμοποιήθηκε για την παραγγελία αυτού του χάρτη ή μηδέν εάν αυτός ο χάρτης χρησιμοποιεί τη φυσική σειρά των κλειδιών του.
boolean περιέχειKey (κλειδί αντικειμένου) Επιστρέφει true αν αυτός ο χάρτης περιέχει αντιστοίχιση για το καθορισμένο κλειδί.
boolean περιέχειValue (τιμή αντικειμένου) Επιστρέφει true αν αυτός ο χάρτης αντιστοιχίζει ένα ή περισσότερα κλειδιά στην καθορισμένη τιμή.
Ορισμός καταχώρησηςSet () Επιστρέφει μια καθορισμένη προβολή των χαρτών που περιέχονται σε αυτόν τον χάρτη.
Πρώτο αντικείμενο () Επιστρέφει το πρώτο (χαμηλότερο) κλειδί που βρίσκεται σε αυτόν τον ταξινομημένο χάρτη.
Λήψη αντικειμένου (κλειδί αντικειμένου) Επιστρέφει την τιμή στην οποία αυτός ο χάρτης χαρτογραφεί το καθορισμένο κλειδί.
SappedMap headMap (Object toKey) Επιστρέφει μια προβολή του τμήματος αυτού του χάρτη του οποίου τα κλειδιά είναι αυστηρά λιγότερο από το toKey.
Ορισμός keySet () Επιστρέφει μια καθορισμένη προβολή των κλειδιών που περιέχονται σε αυτόν τον χάρτη.
Αντικείμενο LastKey () Επιστρέφει το τελευταίο (υψηλότερο) κλειδί που βρίσκεται σε αυτόν τον ταξινομημένο χάρτη.
Αντικείμενο (κλειδί αντικειμένου, τιμή αντικειμένου) Συσχετίζει την καθορισμένη τιμή με το καθορισμένο κλειδί σε αυτόν τον χάρτη.
void putAll (χάρτης χάρτη) Αντιγράφει όλες τις αντιστοιχίσεις από τον καθορισμένο χάρτη σε αυτόν τον χάρτη.
Αφαίρεση αντικειμένου (κλειδί αντικειμένου) Καταργεί τη χαρτογράφηση αυτού του κλειδιού από αυτό το TreeMap εάν υπάρχει.
int μέγεθος () Επιστρέφει τον αριθμό αντιστοιχίσεων κλειδιού-τιμής σε αυτόν τον χάρτη.
SubMap SortedMap (Object fromKey, Object toKey) Επιστρέφει μια προβολή του τμήματος αυτού του χάρτη του οποίου τα πλήκτρα κυμαίνονται από το Key, το Inclusive, το to Key, το Exclusive.
SortedMap tailMap (Object fromKey) Επιστρέφει μια προβολή του τμήματος αυτού του χάρτη του οποίου τα πλήκτρα είναι μεγαλύτερα ή ίσα με το fromKey.
Τιμές συλλογής () Επιστρέφει μια συλλογή συλλογής των τιμών που περιέχονται σε αυτόν τον χάρτη.

Παράδειγμα TreeMap στην Java

import java.util.TreeMap δημόσια κλάση TreeMapMain {public static void main (String args []) {// TreeMap με Χώρα ως κλειδί και κεφάλαιο ως τιμή // Το TreeMap αποθηκεύει στοιχεία με φυσική σειρά κλειδιών TreeMap countryCapitalMap = new TreeMap () countryCapitalMap.put ('India', 'Delhi') countryCapitalMap.put ('Japan', 'Tokyo') countryCapitalMap.put ('France', 'Paris') countryCapitalMap.put ('Russia') , 'Moscow') System.out.println ('-----------------------------') // Iterating TreeMap Χρήση keySet ( ) και για κάθε βρόχο System.out.println ('Iterating TreeMap Using keySet () and for each loop') για [String countryKey: countryCapitalMap.keySet ()) {System.out.println ('Country:' + countryKey + ' και Κεφάλαιο: '+ countryCapitalMap.get (countryKey))} System.out.println (' ----------------------------- ' )}}

Παραγωγή:

Με αυτό, καταλήγουμε στο τέλος αυτού του άρθρου TreeMap στην Java. ντο τσεκάρετε το από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για φοιτητές και επαγγελματίες που θέλουν να γίνουν προγραμματιστές Java. Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή στον προγραμματισμό Java και να σας εκπαιδεύσει τόσο για βασικές όσο και για προχωρημένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του ιστοτόπου 'TreeMap in Java' και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.