Stručný úvod do TreeMap v Jave s príkladmi



Tento článok vám poskytne podrobné a komplexné znalosti TreeMap v Jave s príkladmi metód a konštruktorov.

Implementácia rozhrania Map v Jave je veľmi dôležitá úloha. Z tohto dôvodu máme TreeMap a HashMap . V tomto článku sa zameriame na TreeMap v v nasledujúcom poradí:

Čo je TreeMap v Jave?

TreeMap v Jave sa používa na implementáciu mapového rozhrania a NavigableMap spolu s abstraktnou triedou. Mapa je zoradená podľa prirodzeného usporiadania jej kľúčov alebo podľa komparátora poskytnutého v čase vytvorenia mapy, v závislosti od použitého konštruktora. To sa ukazuje ako efektívny spôsob triedenia a ukladania párov kľúč - hodnota.





TreeMap-in-JavaPoradie ukladania udržiavané v stromovej mape musí byť v súlade s rovnosťou rovná sa ako každá iná triedená mapa bez ohľadu na explicitné komparátory. Stromová mapaimplementácia sa nesynchronizuje v tom zmysle, že ak je mapa prístupná viacerými vláknami, súčasne a aspoň jedno z vlákien mapu štrukturálne upravuje, musí sa synchronizovať externe.

Vlastnosti TreeMaps

  • Táto trieda je členom Java Collections Framework.



  • Trieda implementuje mapové rozhrania vrátane NavigableMap, SortedMap a rozširuje AbstractMap

  • TreeMap v Jave neumožňuje nulové kľúče (napríklad Map), a preto je vyvolaná NullPointerException. S rôznymi kľúčmi však možno spojiť viac nulových hodnôt.

  • Všetky páry Map.Entry vrátené metódami v tejto triede a jej zobrazenia predstavujú snímky mapovaní v čase, keď boli vyrobené.



  • Nepodporujú metódu Entry.setValue.

Dôležité body na zapamätanie

  1. Okrem implementácie rozhrania Map implementuje Java TreeMap aj NavigableMap a nepriamo implementuje rozhranie SortedMap. TreeMap tiež rozširuje triedu AbstractMap.

  2. Položky TreeMap sú zoradené v prirodzenom poradí ich kľúčov. Poskytuje tiež konštruktor, ktorý poskytuje komparátor, ktorý sa má použiť na objednávanie. Ak teda ako kľúč používate ktorúkoľvek triedu, uistite sa, že implementuje porovnateľné rozhranie pre prirodzené usporiadanie. Pozrite sa na otázky týkajúce sa rozhovorov so zbierkami Java, aby ste pochopili dôležitosť týchto metód.

  3. Implementácia Java TreeMap poskytuje zaručené časové náklady protokolu (n) pre operácie containsKey, get, put a remove.

  4. TreeMap nie je synchronizovaný, a preto nie je bezpečný pre vlákna. Pre viacvláknové prostredia môžete získať zabalený synchronizovaný pomocou metódy Collections.synchronizedSortedMap.

  5. Metódy TreeMap na získanie sady kľúčov a hodnôt vracajú Iterator, ktorý má rýchly charakter, takže akákoľvek súbežná úprava vyvolá ConcurrentModificationException.

  6. TreeMap v jave neumožňuje nulové kľúče, k rôznym kľúčom však môžete mať priradených viac nulových hodnôt.

Konštruktory v TreeMap

Staviteľ Popis
TreeMap () Vytvorí prázdnu mapu stromu, ktorá bude zoradená podľa prirodzeného poradia jej klávesov.
TreeMap (komparátor) Vytvorí prázdnu stromovú mapu, ktorá bude zoradená pomocou komparátora Comparator.
TreeMap (mapa m) Inicializuje stromovú mapu so záznamami z m, ktoré budú zoradené podľa prirodzeného poradia klávesov.
TreeMap (SortedMap sm) Inicializuje stromovú mapu so záznamami z SortedMap sm, ktoré budú zoradené v rovnakom poradí ako sm.

Metódy v TreeMap

Metóda Popis
prázdne miesto jasné () Odstráni všetky mapovania z tejto TreeMap.
Klon objektu () Vráti plytkú kópiu tejto inštancie TreeMap.
Komparátor komparátor () Vráti komparátor použitý na objednanie tejto mapy, alebo hodnotu null, ak táto mapa používa prirodzené poradie svojich kľúčov.
boolean containsKey (kľúč objektu) Vráti hodnotu true, ak táto mapa obsahuje mapovanie pre zadaný kľúč.
boolean containsValue (hodnota objektu) Vráti hodnotu true, ak táto mapa mapuje jeden alebo viac kľúčov na zadanú hodnotu.
Nastaviť položku Nastaviť () Vráti množinové zobrazenie máp obsiahnutých na tejto mape.
Objekt firstKey () Vráti prvý (najnižší) kľúč momentálne na tejto zoradenej mape.
Získanie objektu (kľúč objektu) Vráti hodnotu, na ktorú táto mapa mapuje zadaný kľúč.
SortedMap headMap (Object toKey) Vráti pohľad na časť tejto mapy, ktorej kľúče sú striktne menšie ako toKey.
Set keySet () Vráti zobrazenie sady kľúčov obsiahnutých na tejto mape.
Objekt lastKey () Vráti posledný (najvyšší) kľúč, ktorý sa momentálne nachádza na tejto zoradenej mape.
Vložte objekt (kľúč objektu, hodnota objektu) Priradí zadanú hodnotu k zadanému kľúču na tejto mape.
void putAll (Mapa mapa) Skopíruje všetky mapovania zo zadanej mapy na túto mapu.
Odstrániť objekt (kľúč objektu) Odstráni mapovanie tohto kľúča z tejto TreeMap, ak je prítomné.
veľkosť int () Vráti počet priradení kľúč - hodnota na tejto mape.
Submapa SortedMap (Object fromKey, Object toKey) Vráti pohľad na časť tejto mapy, ktorej kľúče sa pohybujú od kľúča vrátane (po) do kľúča výlučne.
SortedMap tailMap (Object fromKey) Vráti pohľad na časť tejto mapy, ktorej kľúče sú väčšie alebo rovnaké ako zKey.
Hodnoty zbierky () Vráti kolekciu hodnôt obsiahnutých na tejto mape.

Príklad TreeMap v Jave

import java.util.TreeMap verejná trieda TreeMapMain {public static void main (String args []) {// TreeMap s Country ako kľúčom a veľkým ako hodnota // TreeMap ukladá prvky v prirodzenom poradí kľúčov. TreeMap countryCapitalMap = nový TreeMap () countryCapitalMap.put ('India', 'Dillí') countryCapitalMap.put ('Japonsko', 'Tokio') countryCapitalMap.put ('Francúzsko', 'Paríž') countryCapitalMap.put ('Rusko') , 'Moskva') System.out.println ('-----------------------------') // Iterácia TreeMap pomocou keySet ( ) a pre každú slučku System.out.println ('Iterating TreeMap Using keySet () and for each loop') for (String countryKey: countryCapitalMap.keySet ()) {System.out.println ('Country:' + countryKey + ' a kapitál: '+ countryCapitalMap.get (countryKey))} System.out.println (' ----------------------------- ' )}}

Výkon:

ísť fungovať v pythone

Týmto sa dostávame na koniec tohto článku TreeMap in Java. C. sakra autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je určený pre študentov a profesionálov, ktorí chcú byť vývojármi Java. Kurz je navrhnutý tak, aby vám dal náskok v programovaní v jazyku Java a naučil vás základné aj pokročilé koncepty jazyka Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to, prosím, v sekcii komentárov v tomto blogu „TreeMap in Java“ a my sa vám ozveme čo najskôr.