Stručný úvod do TreeMap v Javě s příklady

Tento článek vám poskytne podrobné a komplexní znalosti TreeMap v Javě s příklady metod a konstruktorů.

Implementace rozhraní Map v Javě je velmi důležitý úkol. Z tohoto důvodu máme TreeMap a HashMap . V tomto článku se zaměříme na TreeMap in v následujícím pořadí:

Co je TreeMap v Javě?

TreeMap v Javě se používá k implementaci rozhraní Map a NavigableMap spolu s třídou Abstract. Mapa je tříděna podle přirozeného uspořádání jejích klíčů nebo podle komparátoru poskytovaného v době vytvoření mapy, v závislosti na použitém konstruktoru. To se ukazuje jako efektivní způsob třídění a ukládání párů klíč – hodnota.





TreeMap-in-JavaPořadí ukládání udržované treemapou musí být konzistentní s equals stejně jako jakákoli jiná seřazená mapa, bez ohledu na explicitní komparátory. Treemapimplementace není synchronizována v tom smyslu, že pokud je mapa přístupná více vlákny, současně a alespoň jedno z vláken strukturně upravuje mapu, musí být synchronizována externě.

Vlastnosti TreeMaps

  • Tato třída je členem Java Collections Framework.



  • Třída implementuje Mapová rozhraní včetně NavigableMap, SortedMap a rozšiřuje AbstractMap

  • TreeMap v Javě neumožňuje nulové klíče (jako Map), a proto je vyvolána výjimka NullPointerException. K různým klíčům však lze přidružit více hodnot null.

  • Všechny páry Map.Entry vrácené metodami v této třídě a její zobrazení představují snímky mapování v době, kdy byly vytvořeny.



  • Nepodporují metodu Entry.setValue.

Důležité body k zapamatování

  1. Kromě implementace rozhraní Map implementuje Java TreeMap také NavigableMap a nepřímo implementuje rozhraní SortedMap. TreeMap také rozšiřuje třídu AbstractMap.

  2. Záznamy TreeMap jsou seřazeny v přirozeném pořadí jeho klíčů. Poskytuje také konstruktor poskytující komparátor, který se má použít pro objednávání. Pokud tedy jako klíč používáte jakoukoli třídu, ujistěte se, že implementuje srovnatelné rozhraní pro přirozené řazení. Podívejte se na otázky týkající se rozhovorů s kolekcemi java, abyste pochopili důležitost těchto metod.

  3. Implementace Java TreeMap poskytuje zaručené časové náklady protokolu (n) pro operace containsKey, get, put a remove.

  4. TreeMap není synchronizován, a proto není bezpečný pro vlákna. Pro prostředí s více vlákny můžete získat zabalenou synchronizaci pomocí metody Collections.synchronizedSortedMap.

  5. Metody TreeMap pro získání sady klíčů a hodnot vracejí Iterator, který má rychlou povahu, takže jakákoli souběžná modifikace vyvolá ConcurrentModificationException.

  6. TreeMap v java neumožňuje nulové klíče, můžete však mít více různých hodnot null přidružených k různým klíčům.

Konstruktory v TreeMap

Stavitel Popis
TreeMap () Vytvoří prázdnou stromovou mapu, která bude tříděna pomocí přirozeného pořadí jeho klíčů.
TreeMap (komparátor) Vytvoří prázdnou stromovou mapu, která bude tříděna pomocí srovnávače.
TreeMap (mapa m) Inicializuje stromovou mapu s položkami z m, které budou seřazeny podle přirozeného pořadí kláves.
TreeMap (SortedMap sm) Inicializuje treemapu s položkami z SortedMap sm, které budou seřazeny ve stejném pořadí jako sm.

Metody v TreeMap

Metoda Popis
prázdnota clear () Odebere všechna mapování z této TreeMap.
Klon objektu () Vrátí mělkou kopii této instance TreeMap.
Komparátor komparátor () Vrátí komparátor použitý k objednání této mapy, nebo null, pokud tato mapa používá přirozené pořadí svých klíčů.
boolean containsKey (klíč objektu) Vrátí true, pokud tato mapa obsahuje mapování pro zadaný klíč.
boolean containsValue (hodnota objektu) Vrátí true, pokud tato mapa mapuje jeden nebo více klíčů na zadanou hodnotu.
Set entrySet () Vrátí zobrazení sady mapování obsažené v této mapě.
Objekt firstKey () Vrátí první (nejnižší) klíč aktuálně na této tříděné mapě.
Získání objektu (klíč objektu) Vrátí hodnotu, na kterou tato mapa mapuje zadaný klíč.
SortedMap headMap (Object toKey) Vrátí pohled na část této mapy, jejíž klíče jsou přísně menší než toKey.
Set keySet () Vrátí zobrazení sady klíčů obsažených v této mapě.
Objekt lastKey () Vrátí poslední (nejvyšší) klíč aktuálně na této tříděné mapě.
Vložení objektu (klíč objektu, hodnota objektu) Přidruží zadanou hodnotu k určenému klíči na této mapě.
void putAll (Mapa mapy) Zkopíruje všechna mapování ze zadané mapy na tuto mapu.
Odstranit objekt (klíč objektu) Odebere mapování pro tento klíč z této TreeMap, pokud existuje.
int velikost () Vrátí počet mapování klíč – hodnota na této mapě.
SubMap SortedMap (Object fromKey, Object toKey) Vrátí pohled na část této mapy, jejíž klíče se pohybují od odKey, včetně, po toKey, exkluzivní.
SortedMap tailMap (Object fromKey) Vrátí pohled na část této mapy, jejíž klíče jsou větší nebo rovny fromKey.
Hodnoty kolekce () Vrátí zobrazení kolekce hodnot obsažených v této mapě.

Příklad TreeMap v Javě

importovat java.util.TreeMap veřejnou třídu TreeMapMain {public static void main (String args []) {// TreeMap s Country jako klíčem a velkým kapitálem jako hodnota // TreeMap ukládá prvky v přirozeném pořadí klíčů. TreeMap countryCapitalMap = nový TreeMap () countryCapitalMap.put ('Indie', 'Dillí') countryCapitalMap.put ('Japonsko', 'Tokio') countryCapitalMap.put ('Francie', 'Paříž') countryCapitalMap.put ('Rusko') , 'Moskva') System.out.println ('-----------------------------') // Iterating TreeMap Using keySet ( ) a pro každou smyč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ýstup:

co je fazole v Javě

S tímto se dostáváme na konec tohoto článku TreeMap in Java. C sakra Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Školicí a certifikační kurz Edureka Java J2EE a SOA je určen pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování v Javě a naučil vás základní i pokročilé koncepty Javy spolu s různými jávskými rámci, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů v tomto blogu „TreeMap in Java“ a my se vám ozveme co nejdříve.