Java TreeMap klasa je implementacija bazirana na crveno-crnom stablu. Omogućuje učinkovit način pohranjivanja parova ključ-vrijednost sortiranim redoslijedom.
Važne točke o klasi Java TreeMap su:
- Java TreeMap sadrži vrijednosti temeljene na ključu. Implementira sučelje NavigableMap i proširuje klasu AbstractMap.
- Java TreeMap sadrži samo jedinstvene elemente.
- Java TreeMap ne može imati null ključ, ali može imati više null vrijednosti.
- Java TreeMap nije sinkroniziran.
- Java TreeMap održava uzlazni poredak.
Deklaracija klase TreeMap
Pogledajmo deklaraciju za klasu java.util.TreeMap.
python // operator
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
Parametri klase TreeMap
Pogledajmo parametre za klasu java.util.TreeMap.
Konstruktori klase Java TreeMap
Konstruktor | Opis |
---|---|
TreeMap() | Koristi se za konstruiranje prazne karte stabla koja će biti sortirana prema prirodnom redoslijedu svog ključa. |
TreeMap (komparator komparator) | Koristi se za izradu prazne karte temeljene na stablu koja će biti sortirana pomoću komparatora komparatora. |
TreeMap (karta m) | Koristi se za inicijalizaciju karte stabla s unosima iz m , koji će biti poredani prirodnim redoslijedom ključeva. |
TreeMap(SortedMap m) | Koristi se za inicijalizaciju mape stabla s unosima iz SortedMap-a sm , koji će biti poredani istim redoslijedom kao sm. |
Metode Java TreeMap klase
metoda | Opis |
---|---|
Map.Entry strop Entry(K tipka) | Vraća par ključ-vrijednost koji ima najmanji ključ, veći ili jednak navedenom ključu ili nulu ako takav ključ ne postoji. |
K stropni ključ (K ključ) | Vraća najmanji ključ, veći od navedenog ključa ili null ako ne postoji takav ključ. |
praznina jasno() | Uklanja sve parove ključ-vrijednost s karte. |
Klon objekta() | Vraća plitku kopiju instance TreeMap. |
komparator komparator() | Vraća komparator koji slaže ključ po redu ili null ako mapa koristi prirodni poredak. |
NavigableSet descendingKeySet() | Vraća pogled NavigableSet obrnutim redoslijedom ključeva sadržanih na karti. |
NavigableMap descendingMap() | Vraća navedene parove ključ-vrijednost silaznim redoslijedom. |
Map.Entry firstEntry() | Vraća par ključ-vrijednost koji ima najmanji ključ. |
Map.Entry floorEntry(tipka K) | Vraća najveći ključ, manji ili jednak navedenom ključu, ili null ako takav ključ ne postoji. |
void forEach(radnja BiConsumer) | Izvodi zadanu radnju za svaki unos u mapi sve dok se svi unosi ne obrade ili dok akcija ne izbaci iznimku. |
SortedMap headMap(K toKey) | Vraća parove ključ-vrijednost čiji su ključevi striktno manji od toKey. |
NavigableMap headMap (od K do ključa, uključivo booleov) | Vraća parove ključ-vrijednost čiji su ključevi manji od (ili jednaki ako je uključivo istinito) toKey. |
Map.Entry aboveEntry(tipka K) | Vraća najmanji ključ striktno veći od danog ključa ili null ako takav ključ ne postoji. |
K viši ključ (K ključ) | Koristi se za vraćanje true ako ova mapa sadrži mapiranje za navedeni ključ. |
Postavi keySet() | Vraća zbirku ključeva koji postoje u mapi. |
Map.Entry lastEntry() | Vraća par ključ-vrijednost koji ima najveći ključ ili null ako takav ključ ne postoji. |
Map.Entry lowerEntry(tipka K) | Vraća mapiranje ključ-vrijednost povezano s najvećim ključem koji je striktno manji od danog ključa ili null ako takav ključ ne postoji. |
K niža tipka (K tipka) | Vraća najveći ključ striktno manji od danog ključa ili null ako takav ključ ne postoji. |
NavigableSet navigableKeySet() | Vraća prikaz NavigableSet ključeva sadržanih u ovoj karti. |
Map.Entry pollFirstEntry() | Uklanja i vraća preslikavanje ključa i vrijednosti povezano s najmanjim ključem u ovoj mapi ili null ako je mapa prazna. |
Map.Entry pollLastEntry() | Uklanja i vraća preslikavanje ključa i vrijednosti povezano s najvećim ključem u ovoj mapi ili null ako je mapa prazna. |
V staviti (K ključ, V vrijednost) | Umeće navedenu vrijednost s navedenim ključem u mapu. |
void putAll(Map map) | Koristi se za kopiranje svih parova ključ-vrijednost s jedne karte na drugu kartu. |
V zamjena (K ključ, V vrijednost) | Zamjenjuje navedenu vrijednost za određeni ključ. |
boolean zamjena (ključ K, V stara vrijednost, V nova vrijednost) | Zamjenjuje staru vrijednost novom vrijednošću za određeni ključ. |
void replaceAll (funkcija BiFunction) | Zamjenjuje vrijednost svakog unosa rezultatom pozivanja dane funkcije na tom unosu dok se svi unosi ne obrade ili funkcija ne izbaci iznimku. |
NavigableMap subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | Vraća parove ključ-vrijednost čiji se ključevi kreću od fromKey do toKey. |
SortedMap subMap(K fromKey, K toKey) | Vraća parove ključ-vrijednost čiji ključevi variraju od fromKey, inclusive, do toKey, ekskluzivno. |
SortedMap tailMap(K fromKey) | Vraća parove ključ-vrijednost čiji su ključevi veći ili jednaki fromKey. |
NavigableMap tailMap(K fromKey, uključivo booleov) | Vraća parove ključ-vrijednost čiji su ključevi veći od (ili jednaki, ako je uključivo istinito) fromKey. |
boolean containsKey(ključ objekta) | Vraća true ako mapa sadrži mapiranje za navedeni ključ. |
boolean containsValue(vrijednost objekta) | Vraća true ako karta preslikava jedan ili više ključeva na navedenu vrijednost. |
K prvi ključ() | Koristi se za vraćanje prvog (najnižeg) ključa trenutno u ovoj sortiranoj mapi. |
V get (ključ objekta) | Koristi se za vraćanje vrijednosti na koju mapa preslikava navedeni ključ. |
K zadnjiKljuč() | Koristi se za vraćanje posljednjeg (najvišeg) ključa trenutno u sortiranoj mapi. |
V ukloniti (ključ objekta) | Uklanja par ključ-vrijednost navedenog ključa s karte. |
set | Vraća postavljeni prikaz preslikavanja sadržanih u karti. |
int size() | Vraća broj parova ključ-vrijednost koji postoji u hash tablici. |
Vrijednosti zbirke() | Vraća prikaz zbirke vrijednosti sadržanih u karti. |
Primjer 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
Primjer 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()); } } }
Izlaz:
10 od 100,00 kn
Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul
Primjer 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}
Primjer 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}
Koja je razlika između HashMapa i TreeMapa?
HashMap | TreeMap |
---|---|
1) HashMap može sadržavati jedan null ključ. | TreeMap ne može sadržavati nijedan nulti ključ. |
2) HashMap ne održava red. | TreeMap održava uzlazni poredak. |
Primjer Java TreeMap: Knjiga
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); } } }
Izlaz:
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