Klasa Java TreeMap jest implementacją opartą na czerwono-czarnym drzewie. Zapewnia skuteczny sposób przechowywania par klucz-wartość w posortowanej kolejności.
Ważne punkty dotyczące klasy Java TreeMap to:
- Java TreeMap zawiera wartości oparte na kluczu. Implementuje interfejs NavigableMap i rozszerza klasę AbstractMap.
- Java TreeMap zawiera tylko unikalne elementy.
- Java TreeMap nie może mieć klucza zerowego, ale może mieć wiele wartości null.
- Java TreeMap nie jest zsynchronizowana.
- Java TreeMap utrzymuje porządek rosnący.
Deklaracja klasy TreeMap
Zobaczmy deklarację klasy java.util.TreeMap.
uczenie maszynowe i typy
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
Parametry klasy TreeMap
Zobaczmy parametry klasy java.util.TreeMap.
Konstruktory klasy Java TreeMap
Konstruktor | Opis |
---|---|
Mapa Drzewa() | Służy do konstruowania pustej mapy drzewa, która będzie posortowana według naturalnej kolejności jej klucza. |
TreeMap (komparator komparatora) | Służy do konstruowania pustej mapy opartej na drzewie, która będzie sortowana za pomocą komparatora comp. |
Mapa drzewa (mapa m) | Służy do inicjowania mapy drzewa z wpisami z M , które zostaną posortowane według naturalnej kolejności kluczy. |
Mapa drzewa (posortowana mapa m) | Służy do inicjowania mapy drzewa wpisami z SortedMap sm , które zostaną posortowane w tej samej kolejności co sm. |
Metody klasy Java TreeMap
metoda | Opis |
---|---|
Mapa. Wejście do sufitu Wejście (klawisz K) | Zwraca parę klucz-wartość zawierającą najmniejszy klucz, większy lub równy określonemu kluczowi, lub null, jeśli taki klucz nie istnieje. |
Klawisz sufitowy K (klawisz K) | Zwraca najmniejszy klucz, większy niż określony klucz lub null, jeśli taki klucz nie istnieje. |
puste jasne() | Usuwa wszystkie pary klucz-wartość z mapy. |
Klon obiektu() | Zwraca płytką kopię instancji TreeMap. |
Komparator komparator() | Zwraca komparator, który porządkuje klucze, lub wartość null, jeśli mapa wykorzystuje porządek naturalny. |
NavigableSet malejącoKeySet() | Zwraca widok NavigableSet w odwrotnej kolejności dla kluczy zawartych na mapie. |
NavigableMap malejącoMap() | Zwraca określone pary klucz-wartość w kolejności malejącej. |
Mapa.Wpis pierwszyEntry() | Zwraca parę klucz-wartość mającą najmniejszy klucz. |
Mapa. Wejście na piętro Wejście (klawisz K) | Zwraca największy klucz, mniejszy lub równy określonemu kluczowi, lub null, jeśli taki klucz nie istnieje. |
void forEach (akcja BiConsumer) | Wykonuje daną akcję dla każdego wpisu na mapie, dopóki wszystkie wpisy nie zostaną przetworzone lub akcja nie zgłosi wyjątku. |
SortedMap headMap(K toKey) | Zwraca pary klucz-wartość, których kluczy jest mniej niż toKey. |
NavigableMap headMap(K toKey, wartość logiczna włącznie) | Zwraca pary klucz-wartość, których klucze są mniejsze niż (lub równe, jeśli inkluzja ma wartość true) toKey. |
Mapa. Wejście wyższe wejście (klawisz K) | Zwraca najmniejszy klucz ściśle większy od podanego klucza lub null, jeśli takiego klucza nie ma. |
K wyższy klucz (klawisz K) | Służy do zwracania prawdy, jeśli ta mapa zawiera mapowanie dla określonego klucza. |
Ustaw zestaw kluczy() | Zwraca kolekcję kluczy istniejącą na mapie. |
Mapa.Wpis lastEntry() | Zwraca parę klucz-wartość mającą największy klucz lub wartość null, jeśli taki klucz nie istnieje. |
Mapa. Wejście dolne wejście (klawisz K) | Zwraca mapowanie klucz-wartość powiązane z największym kluczem, ściśle mniejsze od podanego klucza lub null, jeśli taki klucz nie istnieje. |
K dolny klawisz (klawisz K) | Zwraca największy klucz dokładnie mniejszy od podanego klucza lub null, jeśli takiego klucza nie ma. |
NavigableSet navigableKeySet() | Zwraca widok NavigableSet kluczy zawartych na tej mapie. |
Mapa.Entry pollFirstEntry() | Usuwa i zwraca mapowanie klucz-wartość powiązane z najmniejszym kluczem na tej mapie lub null, jeśli mapa jest pusta. |
Mapa.Wejście pollLastEntry() | Usuwa i zwraca mapowanie klucz-wartość powiązane z największym kluczem na tej mapie lub wartość null, jeśli mapa jest pusta. |
V put (klawisz K, wartość V) | Wstawia określoną wartość z określonym kluczem na mapie. |
void putAll (mapa mapy) | Służy do kopiowania całej pary klucz-wartość z jednej mapy na inną. |
Zamień V (klawisz K, wartość V) | Zastępuje określoną wartość dla określonego klucza. |
zamiana logiczna (klawisz K, V stara wartość, V nowa wartość) | Zastępuje starą wartość nową wartością dla określonego klucza. |
nieważne zamień wszystko (funkcja BiFunction) | Zastępuje wartość każdego wpisu wynikiem wywołania danej funkcji dla tego wpisu, dopóki wszystkie wpisy nie zostaną przetworzone lub funkcja nie zgłosi wyjątku. |
NavigableMap subMap(K fromKey, wartość logiczna zInclusive, K toKey, wartość logiczna toInclusive) | Zwraca pary klucz-wartość, których klucze mieszczą się w zakresie od fromKey do toKey. |
SortedMap subMap(K z klucza, K z klucza) | Zwraca pary klucz-wartość, których klucze mieszczą się w zakresie od fromKey (włącznie) do toKey (wyłącznie). |
SortedMap tailMap(K z klucza) | Zwraca pary klucz-wartość, których klucze są większe lub równe fromKey. |
NavigableMap tailMap(K z klucza, wartość logiczna włącznie) | Zwraca pary klucz-wartość, których klucze są większe (lub równe, jeśli opcja inclusive ma wartość true) odKey. |
wartość logiczna zawiera klucz (klucz obiektu) | Zwraca wartość true, jeśli mapa zawiera mapowanie dla określonego klucza. |
wartość logiczna zawiera wartość (wartość obiektu) | Zwraca wartość true, jeśli mapa odwzorowuje jeden lub więcej kluczy na określoną wartość. |
K pierwszyKlucz() | Służy do zwrócenia pierwszego (najniższego) klucza aktualnie na tej posortowanej mapie. |
V get (klucz obiektu) | Służy do zwracania wartości, na którą mapa odwzorowuje określony klucz. |
K ostatniKlucz() | Służy do zwrócenia ostatniego (najwyższego) klucza aktualnie znajdującego się na posortowanej mapie. |
V usuń (klucz obiektu) | Usuwa parę klucz-wartość określonego klucza z mapy. |
Ustawić | Zwraca ustawiony widok mapowań zawartych na mapie. |
rozmiar całkowity() | Zwraca liczbę par klucz-wartość istniejących w tablicy mieszającej. |
Wartości kolekcji() | Zwraca widok kolekcji wartości zawartych na mapie. |
Przykład mapy drzewa Java
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
Przykład mapy Java TreeMap: usuń()
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()); } } }
Wyjście:
1 miliard do miliona
Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul
Przykład mapy 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}
Przykład mapy drzewa Java: 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}
Jaka jest różnica między HashMap a TreeMap?
HashMapa | Mapa Drzewa |
---|---|
1) HashMap może zawierać jeden klucz zerowy. | TreeMap nie może zawierać żadnego klucza zerowego. |
2) HashMap nie utrzymuje porządku. | TreeMap utrzymuje porządek rosnący. |
Przykład mapy Java TreeMap: Książka
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); } } }
Wyjście:
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