Třída Java TreeMap je implementace založená na červeno-černém stromě. Poskytuje efektivní prostředky pro ukládání párů klíč–hodnota v seřazeném pořadí.
Důležité body o třídě Java TreeMap jsou:
- Java TreeMap obsahuje hodnoty založené na klíči. Implementuje rozhraní NavigableMap a rozšiřuje třídu AbstractMap.
- Java TreeMap obsahuje pouze jedinečné prvky.
- Java TreeMap nemůže mít klíč null, ale může mít více hodnot null.
- Java TreeMap není synchronizovaná.
- Java TreeMap udržuje vzestupné pořadí.
Deklarace třídy TreeMap
Podívejme se na deklaraci třídy java.util.TreeMap.
mapa na stroji
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
Parametry třídy TreeMap
Podívejme se na parametry třídy java.util.TreeMap.
Konstruktoři třídy Java TreeMap
Konstruktér | Popis |
---|---|
TreeMap() | Používá se ke konstrukci prázdné stromové mapy, která bude řazena podle přirozeného pořadí svého klíče. |
TreeMap (srovnávací komparátor) | Používá se k vytvoření prázdné mapy založené na stromech, která bude setříděna pomocí komparátoru comp. |
Stromová mapa (Mapa m) | Používá se k inicializaci stromové mapy se záznamy z m , které budou seřazeny podle přirozeného pořadí kláves. |
Stromová mapa (SortedMap m) | Používá se k inicializaci stromové mapy s položkami z SortedMap sm , které budou seřazeny ve stejném pořadí jako sm |
Metody třídy Java TreeMap
Metoda | Popis |
---|---|
Mapa. Vstupní stropVstup (klávesa K) | Vrátí pár klíč–hodnota, který má nejmenší klíč, větší nebo rovný zadanému klíči, nebo null, pokud takový klíč neexistuje. |
K stropní klíč (K klíč) | Vrátí nejmenší klíč, větší než zadaný klíč nebo hodnotu null, pokud takový klíč neexistuje. |
void clear() | Odstraní všechny páry klíč–hodnota z mapy. |
Object clone() | Vrátí mělkou kopii instance TreeMap. |
Komparátor komparátor() | Vrátí komparátor, který uspořádá klíč v pořadí, nebo hodnotu null, pokud mapa používá přirozené uspořádání. |
NavigableSet descendingKeySet() | Vrací zobrazení NavigableSet v obráceném pořadí klíčů obsažených v mapě. |
NavigableMap descendingMap() | Vrátí zadané páry klíč–hodnota v sestupném pořadí. |
Map.Entry firstEntry() | Vrátí pár klíč–hodnota, který má nejmenší klíč. |
Mapa. Vstupní podlažíVstup (klávesa K) | Vrátí největší klíč, menší nebo rovný zadanému klíči, nebo null, pokud takový klíč neexistuje. |
void forEach (akce BiConsumer) | Provádí danou akci pro každý záznam v mapě, dokud nejsou zpracovány všechny záznamy nebo akce vyvolá výjimku. |
HeadMap SortedMap (K toKey) | Vrací páry klíč–hodnota, jejichž klíče jsou přísně menší než toKey. |
HeadMap NavigableMap (K toKey, včetně booleanů) | Vrací páry klíč–hodnota, jejichž klíče jsou menší než (nebo se rovnají, pokud je zahrnuto true) toKey. |
Mapa. Vstup vyššíZáznam (klávesa K) | Vrátí nejmenší klíč přísně větší než daný klíč, nebo null, pokud takový klíč neexistuje. |
K vyšší klíč (K klíč) | Používá se k návratu true, pokud tato mapa obsahuje mapování pro zadaný klíč. |
Set keySet() | Vrátí sbírku klíčů, které existují na mapě. |
Map.Entry lastEntry() | Vrátí pár klíč–hodnota, který má největší klíč, nebo hodnotu null, pokud takový klíč neexistuje. |
Map.Entry lowerEntry (klávesa K) | Vrací mapování klíč–hodnota spojené s největším klíčem, který je přísně menší než daný klíč, nebo null, pokud takový klíč neexistuje. |
K dolní klávesa (klávesa K) | Vrátí největší klíč přísně menší než daný klíč, nebo null, pokud takový klíč neexistuje. |
NavigableSet navigableKeySet() | Vrátí zobrazení NavigableSet klíčů obsažených v této mapě. |
Map.Entry pollFirstEntry() | Odstraní a vrátí mapování párů klíč–hodnota přidružené k nejmenšímu klíči v této mapě nebo null, pokud je mapa prázdná. |
Map.Entry pollLastEntry() | Odstraní a vrátí mapování párů klíč–hodnota přidružené k největšímu klíči v této mapě nebo null, pokud je mapa prázdná. |
V put (klíč K, hodnota V) | Vloží zadanou hodnotu se zadaným klíčem do mapy. |
void putAll (mapa mapy) | Používá se ke zkopírování všech párů klíč-hodnota z jedné mapy do jiné mapy. |
V nahradit (klíč K, hodnota V) | Nahradí zadanou hodnotu za zadaný klíč. |
booleovské nahrazení (klíč K, V stará hodnota, V nová hodnota) | Nahradí starou hodnotu novou hodnotou pro zadaný klíč. |
void nahradit vše (funkce BiFunction) | Nahradí hodnotu každé položky výsledkem vyvolání dané funkce na této položce, dokud nebudou zpracovány všechny položky nebo funkce vyvolá výjimku. |
Podmapa NavigableMap (K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | Vrací páry klíč–hodnota, jejichž klíče se pohybují od fromKey do toKey. |
SortedMap subMap (K fromKey, K toKey) | Vrací páry klíč–hodnota, jejichž klíče se pohybují od fromKey včetně až po toKey, exkluzivní. |
Zadní mapa SortedMap (K fromKey) | Vrací páry klíč–hodnota, jejichž klíče jsou větší nebo rovné fromKey. |
Koncová mapa NavigableMap (K fromKey, včetně booleanů) | Vrací páry klíč–hodnota, jejichž klíče jsou větší než (nebo se rovnají, pokud je zahrnuto pravdivé) fromKey. |
boolean obsahujeKey (klíč objektu) | Vrací hodnotu true, pokud mapa obsahuje mapování pro zadaný klíč. |
boolean obsahujeValue(hodnota objektu) | Vrací hodnotu true, pokud mapa mapuje jeden nebo více klíčů na zadanou hodnotu. |
K firstKey() | Slouží k vrácení prvního (nejnižšího) klíče aktuálně v této tříděné mapě. |
V get (klíč objektu) | Slouží k vrácení hodnoty, na kterou mapa mapuje zadaný klíč. |
K lastKey() | Slouží k vrácení posledního (nejvyššího) klíče aktuálně na seřazené mapě. |
V odstranit (klíč objektu) | Odstraní pár klíč-hodnota zadaného klíče z mapy. |
Soubor | Vrátí nastavený pohled na mapování obsažená v mapě. |
int size() | Vrátí počet párů klíč–hodnota, které v hashovací tabulce existují. |
Hodnoty sbírky () | Vrátí zobrazení kolekce hodnot obsažených v mapě. |
Pří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
Pří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ýstup:
kbelíkový druh
Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul
Pří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}
Pří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}
Jaký je rozdíl mezi HashMap a TreeMap?
HashMap | Stromová mapa |
---|---|
1) HashMap může obsahovat jeden klíč null. | TreeMap nemůže obsahovat žádný klíč null. |
2) HashMap neudržuje žádný pořádek. | TreeMap udržuje vzestupné pořadí. |
Pří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ýstup:
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