Trieda Java TreeMap je implementácia založená na červeno-čiernom strome. Poskytuje efektívny prostriedok na ukladanie párov kľúč – hodnota v zoradenom poradí.
Dôležité body o triede Java TreeMap sú:
- Java TreeMap obsahuje hodnoty založené na kľúči. Implementuje rozhranie NavigableMap a rozširuje triedu AbstractMap.
- Java TreeMap obsahuje iba jedinečné prvky.
- Java TreeMap nemôže mať kľúč null, ale môže mať viacero hodnôt null.
- Java TreeMap nie je synchronizovaná.
- Java TreeMap udržiava vzostupné poradie.
Deklarácia triedy TreeMap
Pozrime sa na deklaráciu pre triedu java.util.TreeMap.
reťazec v poli v c
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
Parametre triedy TreeMap
Pozrime sa na Parameters pre triedu java.util.TreeMap.
Konštruktory triedy Java TreeMap
Konštruktér | Popis |
---|---|
TreeMap() | Používa sa na vytvorenie prázdnej stromovej mapy, ktorá bude zoradená podľa prirodzeného poradia jej kľúča. |
TreeMap (porovnávač komparátorov) | Používa sa na vytvorenie prázdnej stromovej mapy, ktorá bude zoradená pomocou komparátora. |
Stromová mapa (Mapa m) | Používa sa na inicializáciu stromovej mapy s položkami z m , ktoré budú zoradené pomocou prirodzeného poradia klávesov. |
Stromová mapa (SortedMap m) | Používa sa na inicializáciu stromovej mapy s položkami zo SortedMap sm , ktoré budú zoradené v rovnakom poradí ako sm |
Metódy triedy Java TreeMap
Metóda | Popis |
---|---|
Mapa. Vstupný stropVstup (kláves K) | Vráti pár kľúč – hodnota, ktorý má najmenší kľúč, väčší alebo rovný zadanému kľúču, alebo hodnotu null, ak taký kľúč neexistuje. |
K stropný kľúč (kláves K) | Vráti najmenší kľúč, väčší ako zadaný kľúč alebo hodnotu null, ak taký kľúč neexistuje. |
void clear() | Z mapy odstráni všetky páry kľúč – hodnota. |
Object clone() | Vracia plytkú kópiu inštancie TreeMap. |
komparátor komparátor() | Vráti komparátor, ktorý usporiada kľúč v poradí, alebo hodnotu null, ak mapa používa prirodzené usporiadanie. |
NavigableSet zostupneKeySet() | Vráti zobrazenie NavigableSet v obrátenom poradí kľúčov obsiahnutých na mape. |
NavigableMap descendingMap() | Vráti zadané páry kľúč – hodnota v zostupnom poradí. |
Map.Entry firstEntry() | Vráti pár kľúč – hodnota, ktorý má najmenší kľúč. |
Mapa. Vstupné poschodieVstup (kláves K) | Vráti najväčší kľúč, menší alebo rovný zadanému kľúču, alebo null, ak taký kľúč neexistuje. |
neplatné pre každého (akcia BiConsumer) | Vykonáva danú akciu pre každý záznam na mape, kým nie sú spracované všetky záznamy alebo akcia nevyvolá výnimku. |
HeadMap SortedMap (K toKey) | Vráti páry kľúč – hodnota, ktorých kľúče sú striktne menšie ako toKey. |
HeadMap NavigableMap (K toKey, vrátane booleovskej) | Vracia páry kľúč – hodnota, ktorých kľúče sú menšie (alebo sa rovnajú, ak je zahrnutie true) toKey. |
Map.Entry aboveEntry(kláves K) | Vráti najmenší kľúč striktne väčší ako daný kľúč alebo hodnotu null, ak taký kľúč neexistuje. |
K vyšším kľúčom (kláves K) | Používa sa na vrátenie true, ak táto mapa obsahuje mapovanie pre zadaný kľúč. |
Set keySet() | Vráti kolekciu kľúčov, ktoré existujú na mape. |
Map.Entry lastEntry() | Vráti pár kľúč – hodnota, ktorý má najväčší kľúč, alebo hodnotu null, ak takýto kľúč neexistuje. |
Map.Entry lowerEntry (kláves K) | Vracia mapovanie kľúč-hodnota spojené s najväčším kľúčom, ktorý je striktne menší ako daný kľúč, alebo null, ak takýto kľúč neexistuje. |
Dolný kláves K (kláves K) | Vracia najväčší kľúč striktne menší ako daný kľúč alebo null, ak taký kľúč neexistuje. |
NavigableSet navigableKeySet() | Vráti zobrazenie NavigableSet kľúčov obsiahnutých v tejto mape. |
Map.Entry pollFirstEntry() | Odstráni a vráti mapovanie párov kľúč-hodnota priradené k najmenšiemu kľúču v tejto mape alebo hodnotu null, ak je mapa prázdna. |
Map.Entry pollLastEntry() | Odstráni a vráti mapovanie párov kľúč-hodnota priradené k najväčšiemu kľúču na tejto mape alebo hodnotu null, ak je mapa prázdna. |
V put (kľúč K, hodnota V) | Vloží zadanú hodnotu so zadaným kľúčom do mapy. |
void putAll(mapa mapy) | Používa sa na skopírovanie všetkých párov kľúč – hodnota z jednej mapy na druhú. |
V nahradiť (kľúč K, hodnota V) | Nahrádza zadanú hodnotu za zadaný kľúč. |
boolovské nahradenie (kľúč K, V stará hodnota, V nová hodnota) | Nahradí starú hodnotu novou hodnotou pre zadaný kľúč. |
void nahradiť všetko (funkcia BiFunction) | Nahrádza hodnotu každej položky výsledkom vyvolania danej funkcie na tejto položke, kým nie sú spracované všetky položky alebo funkcia nevyvolá výnimku. |
Podmapa navigovateľnej mapy (K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | Vracia páry kľúč – hodnota, ktorých kľúče sú v rozsahu od fromKey po toKey. |
SortedMap subMap (K fromKey, K toKey) | Vracia páry kľúč – hodnota, ktorých kľúče sú v rozsahu od odKey vrátane až po toKľúč, exkluzívne. |
Zadná mapa SortedMap (K fromKey) | Vráti páry kľúč – hodnota, ktorých kľúče sú väčšie alebo rovné fromKey. |
Koncová mapa navigačnej mapy (K fromKey, vrátane booleovských hodnôt) | Vracia páry kľúč – hodnota, ktorých kľúče sú väčšie ako (alebo sa rovnajú, ak vrátane je pravda) fromKey. |
boolean obsahuje kľúč (kľúč objektu) | Vráti hodnotu true, ak mapa obsahuje mapovanie pre zadaný kľúč. |
boolean obsahujeHodnotu (hodnota objektu) | Vráti hodnotu true, ak mapa mapuje jeden alebo viac kľúčov na zadanú hodnotu. |
K firstKey() | Používa sa na vrátenie prvého (najnižšieho) kľúča, ktorý je momentálne v tejto zoradenej mape. |
V get (kľúč objektu) | Používa sa na vrátenie hodnoty, na ktorú mapa mapuje zadaný kľúč. |
K lastKey() | Používa sa na vrátenie posledného (najvyššieho) kľúča, ktorý je momentálne na zoradenej mape. |
V odstrániť (kľúč objektu) | Odstráni z mapy pár kľúč – hodnota zadaného kľúča. |
Set | Vráti nastavený pohľad na mapovania obsiahnuté v mape. |
int size() | Vráti počet párov kľúč – hodnota, ktoré existujú v hašovacej tabuľke. |
Hodnoty zbierky () | Vráti zobrazenie kolekcie hodnôt obsiahnutých v mape. |
Príklad Java TreeMap
import java.util.*; class TreeMap1{ public static void main(String args[]){ TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Output:100 Amit 101 Vijay 102 Ravi 103 Rahul
Príklad Java TreeMap: remove()
import java.util.*; public class TreeMap2 { public static void main(String args[]) { TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } map.remove(102); System.out.println('After invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } }
Výkon:
javascript tutoriál
Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul
Príklad Java TreeMap: NavigableMap
import java.util.*; class TreeMap3{ public static void main(String args[]){ NavigableMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Maintains descending order System.out.println('descendingMap: '+map.descendingMap()); //Returns key-value pairs whose keys are less than or equal to the specified key. System.out.println('headMap: '+map.headMap(102,true)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102,true)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, false, 102, true)); } }
descendingMap: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} headMap: {100=Amit, 101=Vijay, 102=Ravi} tailMap: {102=Ravi, 103=Rahul} subMap: {101=Vijay, 102=Ravi}
Príklad Java TreeMap: SortedMap
import java.util.*; class TreeMap4{ public static void main(String args[]){ SortedMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Returns key-value pairs whose keys are less than the specified key. System.out.println('headMap: '+map.headMap(102)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, 102)); } }
headMap: {100=Amit, 101=Vijay} tailMap: {102=Ravi, 103=Rahul} subMap: {100=Amit, 101=Vijay}
Aký je rozdiel medzi HashMap a TreeMap?
HashMap | Stromová mapa |
---|---|
1) HashMap môže obsahovať jeden nulový kľúč. | TreeMap nemôže obsahovať žiadny nulový kľúč. |
2) HashMap neudržiava žiadny poriadok. | TreeMap udržiava vzostupné poradie. |
Príklad Java TreeMap: Kniha
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new TreeMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(2,b2); map.put(1,b1); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Výkon:
1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6