Jak používat datovou strukturu Java TreeMap

Jak používat datovou strukturu Java TreeMap

Třída Java TreeMap ukládá data ve stromové struktuře pomocí mapového rozhraní. Tato třída rozšiřuje třídu AbstractMap a stejně jako její rodičovská třída má TreeMap dva parametry typu. Jeden z jeho parametrů typu představuje klíče ve stromové mapě, zatímco druhý představuje hodnoty.





Datová struktura TreeMap ukládá páry klíč-hodnota a umožňuje s těmito daty provádět operace CRUD.





Jak vytvořit TreeMap v Javě

Třída TreeMap má čtyři konstruktory, které můžete použít k vytvoření nového objektu TreeMap. Výchozí konstruktor je nejoblíbenější ze čtyř. Tento konstruktor nebere žádné argumenty a generuje prázdnou mapu stromu.





// Create a new tree map 
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

Výše uvedený kód generuje prázdnou mapu stromu s názvem zákazníky .

Naplnění datové struktury TreeMap

The dát() metoda přidá položku do objektu TreeMap. Vyžaduje dva argumenty – klíč a jeho hodnotu. Do stromové mapy můžete přidávat položky v libovolném náhodném pořadí a datová struktura je bude ukládat ve vzestupném pořadí podle jejich klíčů.



// Populate a tree map 
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");

Výše uvedený kód přidá pět zákazníků v náhodném pořadí do stromové mapy zákazníků.

připojit můj telefon k počítači

Zobrazení položek ve stromové mapě

Třída TreeMap ukládá svá data do objektu. Chcete-li tedy vidět všechny položky ve stromové mapě, můžete jednoduše vytisknout objekt stromové mapy do konzole:





// View all tree map items as an object 
System.out.println(customers);

Výše uvedený kód vytiskne do konzole následující výstup:

{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Všimněte si, že výše uvedený objekt zobrazuje položky ve vzestupném pořadí. Můžete také zobrazit každou položku a její odpovídající klíč pomocí smyčka Java for .





// View all items with an iterator 
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

Výše uvedený kód vytiskne do konzole následující výstup:

Key: 101 Value: Kim Brown 
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones

Aktualizace položek ve stromové mapě

Třída TreeMap vám umožňuje aktualizovat existující položku pomocí nahradit() metoda. Existují dva způsoby nahrazení. První metoda přebírá existující klíč a novou hodnotu, na kterou chcete existující klíč namapovat.

jak nahrávat televizi do počítače
// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

Výše uvedený kód vytiskne v konzole následující objekt:

{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Jak můžete vidět Kim Brownová je teď Kim Smithová . Druhá metoda replace() přebírá existující klíč, aktuální hodnotu klíče a novou hodnotu, kterou chcete na klíč mapovat.

// Replace existing value 
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

Výše uvedený kód vytiskne v konzole následující objekt:

{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}

V objektu výše Michelle Noah nahrazuje Jim Riley .

což je lepší Android pay nebo samsung pay

Odstranění položek ze stromové mapy

Pokud chcete odstranit jednu položku ze stromové mapy, odstranit() metoda je vaše jediná možnost. Vezme klíč spojený s položkou, kterou chcete odstranit, a vrátí smazanou hodnotu.

// Remove an item 
customers.remove(104);
System.out.println(customers);

Spuštěním výše uvedeného kódu se do konzoly vytiskne následující objekt:

{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

Tento Třída Java má také a Průhledná() metoda, která umožňuje smazat všechny položky ve stromové mapě.

TreeMap vs. třída Java HashMap

TreeMap a HashMap jsou dvě z nejpopulárnějších tříd map Java. Oba rozšiřují třídu AbstractMap. Tento vztah poskytuje třídám TreeMap a HashMap přístup k mnoha stejným funkcím.

Mezi těmito dvěma třídami map jsou však některé pozoruhodné rozdíly. TreeMap používá červeno-černou stromovou implementaci rozhraní mapy, zatímco HashMap používá hašovací tabulku. HashMap vám umožňuje uložit jeden klíč null, zatímco TreeMap nikoli. A konečně, HashMap je rychlejší než TreeMap. Algoritmická rychlost prvního je O(1), zatímco druhého je O(log(n)).