treemap java tutorial with java treemap examples
Acest tutorial Java TreeMap Discută despre clasa TreeMap, Iteration, exemple TreeMap, implementare, Java Hashmap vs Treemap, TreeMap API Methods etc .:
O structură de date TreeMap este o colecție care stochează perechi cheie-valoare într-o ordine sortată natural. Un TreeMap face parte din Java Collections Framework și este o implementare a hărții.
=> Verificați TOATE Tutorialele Java aici.
Ce veți învăța:
Java TreeMap
Unele dintre caracteristicile majore ale TreeMap în Java sunt următoarele:
- Clasa TreeMap care implementează treemap în Java face parte din pachetul java.util. Implementează interfața Map.
- Clasa TreeMap extinde clasa AbstractMap și implementează, de asemenea, interfața NavigableMap și SortedMap (indirect).
- TreeMap nu este sincronizat.
- În mod implicit, elementele TreeMap sunt implicit în ordine crescătoare.
- TreeMap nu permite elemente duplicate.
- TreeMap permite valori nule, dar nu chei nule.
Diagrama de mai jos prezintă ierarhia claselor pentru clasa TreeMap.

După cum sa menționat deja, clasa TreeMap implementează o interfață NavigableMap care, la rândul său, extinde clasa SortedMap. SortedMap moștenește în continuare interfața hărții.
Declarația clasei TreeMap
Declarația generală a clasei TreeMap este dată mai jos:
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializableunde K => tip de chei menținute de TreeMap
V => tipul valorilor mapate
Exemplu TreeMap
Programul de mai jos prezintă un exemplu simplu de structură de date TreeMap.
import java.util.*; class Main{ public static void main(String args()){ //declare a TreeMap and initialize it TreeMap cities_map=new TreeMap (); cities_map.put(100,'Pune'); cities_map.put(102,'Jaipur'); cities_map.put(101,'Hyderabad'); cities_map.put(103,'Bangaluru'); //print the TreeMap contents using forEach System.out.println('Contents of TreeMap:'); System.out.print('{'); for(Map.Entry entries:cities_map.entrySet()){ System.out.print(entries.getKey()+' = '+entries.getValue() + ' '); } System.out.println('}'); } } Ieșire:
Conținutul TreeMap:
{100 = Pune 101 = Hyderabad 102 = Jaipur 103 = Bangaluru}

În acest program, am definit un obiect TreeMap simplu numit, cities_map, iar apoi folosind metoda put, l-am inițializat în perechi cheie-valoare.
Apoi folosim metoda entrySet () a clasei TreeMap și iterăm peste acest set folosind o buclă forEach pentru a imprima perechile cheie-valoare. Pentru imprimarea perechilor cheie-valoare, folosim metodele getKey () și respectiv getValue ().
drepturile principale de acces la fișiere în unix sunt:
TreeMap API Metode și constructori
În această secțiune, vom discuta despre diferiții constructori și metode furnizate de clasa TreeMap.
Constructori
| Prototipul constructorului | Descriere | |
|---|---|---|
| DescendingMap | NavigableMap descendingMap () | Returnează perechile cheie-valoare date în ordine inversă. |
| TreeMap () | Constructor implicit pentru a crea un TreeMap gol cu ordonare naturală. | |
| TreeMap (comparator comparator) | Construiește un TreeMap gol care este sortat pe baza comparatorului specificat. | |
| TreeMap (Harta m) | Construiește un TreeMap și îl inițializează cu elementele hărții specificate, m. Comandarea este firească. | |
| TreeMap (SortedMap m) | Construiește un TreeMap și îl inițializează cu intrări SortedMap. Comanda este la fel ca sortedMap. |
Metode
| Metodă | Metoda prototip | Descriere |
|---|---|---|
| plafon Intrare | Hartă. Plafon de intrare Intrare (tasta K) | Returnează cea mai mică pereche cheie-valoare astfel încât cheia să fie mai mare sau egală cu cheia specificată; nul dacă nu există cheie |
| plafonCheie | Tava K Tasta (tasta K) | Returnează cheia care este mai mică și mai mare decât cheia dată; returnează nul dacă nu există cheie. |
| clar | gol clar () | Șterge toate perechile cheie-valoare din Treemap. |
| clona | Clonare obiect () | Face o copie superficială a instanței TreeMap. |
| comparator | Comparator comparator () | Returnează un comparator folosit pentru aranjarea tastelor. nul dacă ordonarea este naturală |
| descendingKeySet | NavigableSet descendingKeySet () | Returnează NavigableSet vizualizarea tastelor TreeMap în ordine inversă. |
| firstEntry | Map.Entry firstEntry () | Returnează cea mai mică pereche cheie-valoare. |
| floorEntry | Harta. Etaj de intrare Intrare (tasta K) | Returnează cea mai mare cheie care este mai mică sau egală cu o cheie dată; nul dacă nu există o astfel de cheie |
| pentru fiecare | nul pentru fiecare (acțiune BiConsumer) | Acțiunea dată este efectuată pentru fiecare intrare din TreeMap. |
| headMap | SortedMap headMap (K to Key) | Folosit pentru a returna o pereche cheie-valoare astfel încât cheia returnată să fie strict mai mică decât toKey |
| headMap | NavigableMap headMap (K toKey, boolean inclusiv) | Returnează perechile cheie-valoare ale acelor chei care sunt mai mici decât toKey sau egale cu dacă sunt incluse. |
| mai mare Intrare | Map.Entry higherEntry (tasta K) | Returnează cea mai mică cheie sau nulă. Cheia returnată este strict mai mare decât cheia dată. |
| mai mareCheie | K mai mare Tasta (tasta K) | Returnează cheia dacă maparea este prezentă pentru cheia dată în Treemap. |
| keySet | Set keySet () | Returnează colecția setată de chei din TreeMap. |
| lastEntry | Map.Entry lastEntry () | Returnează perechea cheie-valoare astfel încât cheia să fie cea mai mare cheie. Returnează nul dacă cheia nu există. |
| lowerEntry | Map.Entry lowerEntry (tasta K) | Returnează perechea cheie-valoare astfel încât cheia să fie mai mare și strict mai mică decât cheia dată. Returnează nul dacă cheia nu există. |
| cheie inferioară | K mai mic Tasta (tasta K) | Returnează cea mai mare cheie sau nulă. Cheia returnată este strict mai mică decât cheia dată. |
| navigableKeySet | NavigableSet navigableKeySet () | Returnează „NavigableSet” de taste din TreeMap. |
| pollFirstEntry | Map.Entry pollFirstEntry () | Elimină și apoi returnează perechea cheie-valoare a celei mai mici chei. |
| pollLastEntry | Map.Entry pollLastEntry () | Elimină și returnează cea mai mare pereche cheie-valoare cheie. |
| a pune | V put (tasta K, valoarea V) | Adaugă cheia și valoarea datei în TreeMap. |
| pune tot | void putAll (hartă hartă) | Toate perechile cheie-valoare din harta dată sunt copiate în TreeMap. |
| a inlocui | Înlocuire V (tasta K, valoare V) | Înlocuiește sau modifică valoarea cheii date cu valoarea dată. |
| a inlocui | înlocuire booleană (tasta K, V oldValue, V newValue) | Înlocuiește oldValue a cheii date cu newValue. |
| înlocuiește-le pe toate | void replaceAll (funcția BiFunction) | Invocă funcția dată și înlocuiește toate intrările cu rezultatul funcției. |
| subMap | NavigableMap subMap (K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | Returnează perechile cheie-valoare de chei de la „de la cheie” la „la cheie”. |
| SortedMap | SortedMap subMap (K de la Key, K la Key) | Returnează perechile cheie-valoare pentru intervalul de la Cheie (inclusiv) la Cheie (exclusiv). |
| tailMap | SortedMap tailMap (K de la Key) | Returnează perechi cheie-valoare astfel încât cheile să fie mai mari sau egale cu de la Cheie. |
| tailMap | NavigableMap tailMap (K din Key, boolean inclusiv) | Returnează perechi cheie-valoare pentru cheile egale din fromKey (inclusiv = true) sau mai mare decât fromKey. |
| conține Cheie | boolean conține Key (cheie obiect) | Verifică dacă există o mapare pentru cheia dată în Treemap. Returnează adevărat dacă da. |
| conține Valoare | boolean conține Valoare (valoarea obiectului) | Verifică dacă există o cheie mapată cu valoarea dată. Returnează da dacă este adevărat. |
| mai întâi Cheie | K primul Key () | Returnează cea mai mică cheie sau prima cheie din harta sortată |
| obține | V get (cheia obiectului) | Preluează valoarea mapată la cheia dată |
| lastKey | K lastKey () | Returnează ultima cheie sau cea mai înaltă cheie din harta sortată. |
| elimina | V remove (cheie obiect) | Șterge perechea cheie-valoare pentru cheia dată în TreeMap |
| entrySet | A stabilit | Returnează setul pentru TreeMap-ul dat. |
| mărimea | int size () | Returnează dimensiunea sau numărul total de perechi cheie-valoare din TreeMap. |
| valori | Valorile colecției () | Returnează colecția valorilor pentru TreeMap. |
Iterarea prin TreeMap
TreeMap constă din perechi cheie-valoare. Clasa TreeMap oferă o metodă „entrySet” care returnează perechi cheie-valoare în hartă. Putem itera prin aceste intrări folosind bucla forEach și afișăm tastele și valorile folosind metodele getKey () și respectiv getValue ().
Acest lucru este prezentat în programul Java de mai jos:
import java.util.Map; import java.util.TreeMap; class Main { public static void main(String() arg){ //declare and initialize TreeMap Map colorsTree = new TreeMap(); colorsTree.put('R', 'Red'); colorsTree.put('G', 'Green'); colorsTree.put('B', 'Blue'); colorsTree.put('M', 'Magenta'); System.out.println('The contents of TreeMap:'); // retrieve set of map entries using entrySet method for (Map.Entry Map_entry : colorsTree.entrySet()) //print key-value pairs using getKey() and getValue() System.out.println( '(' + Map_entry.getKey() + '=>' + Map_entry.getValue() + ')'); } } Ieșire:
Conținutul TreeMap:
(B => Albastru)
(G => Verde)
(M => Magenta)
(R => Roșu)

Implementarea TreeMap în Java
Următorul program Java demonstrează metoda principală a clasei TreeMap discutată mai sus.
import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; public class Main { public static void main(String() args) { //declare a TreeMap Object and initialize it with values TreeMap map = new TreeMap<>(); for(int i=1;i<=10;i++) { map.put(i, (i*i)+''); } System.out.println('Original Map:' + map); //lowerEntry, higherEntry Entry entry = map.lowerEntry(4); System.out.println('Closest Lower Entry than 4:'+entry); entry = map.higherEntry(4); System.out.println('Closest Higher Entry than 4:'+entry); System.out.println('Closest Lower key than 4 :'+map.lowerKey(4)); entry = map.floorEntry(6); System.out.println('Closest floor entry than 6: '+entry); entry = map.ceilingEntry(6); System.out.println('Closest ceiling Entry than 6 :'+entry); entry = map.firstEntry(); System.out.println('TreeMap First Entry:'+entry); entry = map.lastEntry(); System.out.println('TreeMap Last Entry:'+entry); Map reversedMap = map.descendingMap(); System.out.println('Reversed TreeMap: '+reversedMap); //pollFirstEntry, pollLastEntry entry = map.pollFirstEntry(); System.out.println('TreeMap First Entry:'+entry); entry = map.pollLastEntry(); System.out.println('TreeMap Last Entry:'+entry); //subMap Map subMap = map.subMap(2, true, 6, true); System.out.println('Submap from 2 to 6: '+subMap); //headMap subMap = map.headMap(5, true); System.out.println('HeadMap: '+subMap); //tailMap subMap = map.tailMap(5, true); System.out.println('TailMap: '+subMap); } } Ieșire:
Harta originală: {1 = 1, 2 = 4, 3 = 9, 4 = 16, 5 = 25, 6 = 36, 7 = 49, 8 = 64, 9 = 81, 10 = 100}
Intrarea inferioară cea mai apropiată de 4: 3 = 9
Cea mai apropiată intrare mai mare decât 4: 5 = 25
Cea mai apropiată cheie inferioară decât 4: 3
Cea mai apropiată intrare la etaj decât 6: 6 = 36
Cea mai apropiată plafon Intrare de 6: 6 = 36
TreeMap Prima intrare: 1 = 1
TreeMap Ultima intrare: 10 = 100
TreeMap inversat: {10 = 100, 9 = 81, 8 = 64, 7 = 49, 6 = 36, 5 = 25, 4 = 16, 3 = 9, 2 = 4, 1 = 1}
TreeMap Prima intrare: 1 = 1
TreeMap Ultima intrare: 10 = 100
Submapă de la 2 la 6: {2 = 4, 3 = 9, 4 = 16, 5 = 25, 6 = 36}
HeadMap: {2 = 4, 3 = 9, 4 = 16, 5 = 25}
TailMap: {5 = 25, 6 = 36, 7 = 49, 8 = 64, 9 = 81}

Sortează TreeMap după valoare
În mod implicit, TreeMap este sortat pe baza tastelor în funcție de ordinea naturală. Dar dacă vrem să sortăm TreeMap în funcție de valori, atunci trebuie să folosim comparatorul pentru a defini sortarea.
Programul Java de mai jos sortează TreeMap după valoare.
import java.util.*; class Main { //Method for sorting the TreeMap based on values public static > Map sortTreeMap(final Map map) { //define a comaprator to sort TreeMap on values Comparator valueComparator = new Comparator() { public int compare(K k1, K k2) { int compare = map.get(k1).compareTo(map.get(k2)); if (compare == 0) return 1; else return compare; } }; //use the comparator to sort the TreeMap and return sortedTreeMap Map sortedTreeMap = new TreeMap(valueComparator); sortedTreeMap.putAll(map); return sortedTreeMap; } public static void main(String args()) { //define and initialize the TreeMap TreeMap treemap = new TreeMap(); treemap.put('R', 'Red'); treemap.put('G', 'Green'); treemap.put('B', 'Blue'); treemap.put('C', 'Cyan'); treemap.put('M', 'Magenta'); // call method sortTreeMap to sort the TreeMap Map sortedTreeMap = sortTreeMap(treemap); // Retrieve set of the entries on the sorted map Set set = sortedTreeMap.entrySet(); System.out.println('The sorted TreeMap based on Values:'); // Now define iterator on this set Iterator i = set.iterator(); // Print TreeMap elements while(i.hasNext()) { Map.Entry me = (Map.Entry)i.next(); System.out.print(me.getKey() + ': '); System.out.println(me.getValue()); } } } Ieșire:
TreeMap-ul sortat pe baza valorilor:
B: Albastru
C: Cyan
G: Verde
M: Magenta
R: Roșu

Java Hashmap vs Treemap
Să vedem câteva dintre diferențele majore dintre un HashMap și un TreeMap.
Tabelul de mai jos prezintă aceste diferențe.
| HashMap | TreeMap |
|---|---|
| HashMap este mult mai rapid decât TreeMap. | TreeMap este mai lent |
| Implementează interfața Map. | Implementează interfața NavigableMap. |
| Folosește tehnica de implementare hashing | Utilizați un copac roșu-negru pentru implementare |
| Nu menține nicio ordine de conținere a elementelor | Cheile din harta arbore sunt deja ordonate conform ordonării naturale |
| Permite o cheie nulă și multe valori nule | Permite numai valori nule, dar tastele nu pot fi nule |
| Efectuează operațiuni de bază, pune și intră în timp constant. | Luați-vă timp jurnal (n) pentru a efectua operațiuni put și obține |
| HashMap are funcționalități limitate. | Clasa TreeMap oferă o mulțime de funcționalități suplimentare care ne ajută să manipulăm structura datelor. |
| Folosește metoda equal () pentru comparare. | Folosește metoda compareTo () pentru comparare. |
întrebări frecvente
Q # 1) Ce este TreeMap în Java?
Răspuns: TreeMap în Java este o colecție de perechi cheie-valoare care sunt deja sortate. Folosește un copac roșu-negru în scopul implementării. Java TreeMap implementează interfața NavigableMap în afară de interfața Map și extinde, de asemenea, clasa AbstractMap.
Q # 2) De ce folosim TreeMap în Java?
Răspuns: TreeMap este utilizat în Java pentru implementarea interfețelor Map și NavigableMap și a clasei AbstractMap. Deoarece tastele TreeMap sunt sortate conform ordinii naturale, putem utiliza această structură de date pentru stocarea structurii de directoare, a ierarhiilor de arbori etc.
Q # 3) Ce este mai bine - HashMap sau TreeMap?
Răspuns: HashMap este mai bun decât TreeMap. HashMap necesită întotdeauna timp constant pentru a efectua operațiuni de bază, în timp ce TreeMap necesită timp jurnal (n) pentru a efectua aceste operații. Când sunt implicate obiecte de date mai mari, HashMap funcționează mai rapid în comparație cu TreeMap.
Q # 4) TreeMap este sortat?
Răspuns: Da, intrările cheie din TreeMap sunt sortate în funcție de ordonarea naturală. Clasa TreeMap ne permite, de asemenea, să folosim un comparator personalizat pentru a sorta TreeMap pe baza valorilor.
unire interioară stânga unire dreapta unire
Q # 5) TreeMap este sigur pentru fire?
Răspuns: Nu, TreeMap nu este o colecție sigură pentru fire.
Concluzie
În acest tutorial, am discutat în detaliu TreeMap în Java. TreeMap este o colecție de perechi cheie-valoare care implementează interfața hartă. De asemenea, implementează o interfață NavigableMap. Elementele din TreeMap sunt unice și nu sunt permise duplicate.
Am văzut constructorii și metodele TreeMap. De asemenea, am implementat programul TreeMap și am demonstrat metodele majore ale clasei TreeMap. Apoi am discutat despre diferențele dintre HashMap și TreeMap.
=> Vizitați aici pentru a vedea seria de antrenament Java pentru toți.
Lectură recomandată
- TreeSet în Java: Tutorial cu exemple de programare
- Arborele de căutare binară în Java - Exemple de implementare și cod
- Tutorial JAVA pentru începători: peste 100 de tutoriale video Java practice
- Șirul Java conține () Tutorial metodă cu exemple
- Ce este Java Vector | Tutorial Java Vector Class cu exemple
- Matrice Jagged în Java - Tutorial cu exemple
- Tutorial de curs Java Scanner cu exemple
- Tutorial Java String | Metode Java String cu exemple