Kľúčový rozdiel – HashMap vs TreeMap
Pri programovaní existujú rôzne mechanizmy na zber údajov. Kolekcie sú jednou z metód ukladania údajov. Programovacie jazyky ako Java používajú kolekcie. Je to rámec s triedami a rozhraniami na ukladanie a manipuláciu so súborom dátových prvkov. V normálnom poli existuje pevný počet prvkov na uloženie. To je obmedzenie polí. Namiesto toho môže programátor použiť kolekcie. Operácie ako vkladanie, mazanie, triedenie a vyhľadávanie je možné vykonávať pomocou kolekcií. V jazyku Java patrí rozhranie Map do kolekcií. Mapa sa používa na reprezentáciu údajov v pároch kľúč, hodnota. Existujú iba jedinečné kľúče a každý má zodpovedajúcu hodnotu. HashMap a TreeMap sú triedy, ktoré implementujú rozhranie mapy. HashMap je trieda kolekcie založená na mape, ktorá sa používa na ukladanie párov kľúčov a hodnôt, ktoré neudržiavajú špecifické poradie v dátových prvkoch. TreeMap je trieda kolekcie založená na mape, ktorá sa používa na ukladanie párov kľúčov a hodnôt, ktoré zachovávajú vzostupné poradie dátových prvkov. Kľúčový rozdiel medzi HashMap a TreeMap je v tom, že HashMap neudržiava špecifické poradie dátových prvkov, zatiaľ čo TreeMap zachováva vzostupné poradie dátových prvkov.
Čo je HashMap?
HashMap je trieda, ktorá implementuje mapové rozhranie. Rozširuje triedu AbstractMap a implementuje rozhranie Map. HashMap obsahuje páry kľúč, hodnota. Každý prvok je jedinečný. Pomocou klávesu je ľahké nájsť prvky v HashMap. Vyhlásenie HashMap je nasledovné.
verejná trieda HashMap rozširuje AbstractMap implementuje Mapu, Cloneable, Serializable
K označuje kľúč, zatiaľ čo V označuje hodnotu zodpovedajúcu tomuto konkrétnemu kľúču. Každý pár kľúč, hodnota je záznamom HashMap.
Obrázok 01: Mapové rozhranie
Pre pochopenie HaspMap predpokladajme nasledujúci scenár. Ak tam chce programátor uložiť množinu mien študentov a zodpovedajúcich indexových čísel, môže použiť HashMap. Mená študentov sa používajú na nájdenie indexových čísel. Mená študentov sú preto kľúčmi, kým indexové čísla sú hodnotami.
Obrázok 02: Program HashMap využívajúci Java
Podľa vyššie uvedeného programu sa vytvorí objekt HashMap. Potom môže programátor pridať prvky pomocou tohto objektu. Hodnoty je možné vkladať pomocou metódy put. Na získanie hodnôt by mal programátor použiť metódu get s kľúčom. Pri použití studentList.get(“150”); vytlačí zodpovedajúci názov indexu, ktorým je Ann. Ak chce programátor získať všetky hodnoty, potom môže použiť Map. Entry na vytlačenie všetkých kľúčov a hodnôt. Pri pozorovaní výstupu je vidieť, že HashMap neudržiava konkrétne poradie. Nevytlačí prvky vo vloženom poradí. Prvky sú vytlačené v náhodnom poradí.
Čo je TreeMap?
Stromová mapa je trieda v jazyku Java, ktorá implementuje rozhranie mapy. Podobne ako HashMap sa používa aj na ukladanie párov kľúč, hodnota, ale vo vzostupnom poradí. TreeMap implementuje NavigableMap a NavigableMap rozširuje SortedMap a SortedMap rozširuje mapu. Každý prvok je jedinečný. Vyhlásenie stromovej mapy je nasledovné.
verejná trieda TreeMap rozširuje AbstractMap o implementáciu NavigableMap, Cloneable, Serializable
K označuje kľúč, zatiaľ čo V označuje hodnotu zodpovedajúcu tomuto konkrétnemu kľúču. Každý pár kľúč, hodnota je záznamom stromovej mapy.
Obrázok 03: Program TreeMap využívajúci Java
Podľa vyššie uvedeného programu sa vytvorí objekt TreeMap. Potom môže programátor pridať prvky pomocou tohto objektu. Hodnoty je možné vkladať pomocou metódy put. Na získanie hodnôt by mal programátor použiť metódu get s kľúčom. Pri použití studentList.get(“150”); vytlačí zodpovedajúci názov indexu, ktorým je Ann. Ak chce programátor získať všetky hodnoty, potom môže použiť Map. Entry na vytlačenie všetkých kľúčov a hodnôt. Pri pozorovaní výstupu je vidieť, že TreeMap zachováva špecifické poradie. Prvky sú vytlačené vo vzostupnom poradí.
Aké sú podobnosti medzi HashMap a TreeMap?
- HashMap aj TreeMap implementujú rozhranie mapy.
- HashMap aj TreeMap môžu ukladať a manipulovať s mnohými prvkami.
- HashMap aj TreeMap obsahujú páry kľúč, hodnota.
- HashMap aj TreeMap môžu mať veľa hodnôt null.
- Počet prvkov, ktoré je možné uložiť v HashMap aj TreeMap, nie je obmedzený.
Aký je rozdiel medzi HashMap a TreeMap?
HashMap vs TreeMap |
|
HashMap je trieda kolekcie založená na mape, ktorá sa používa na ukladanie párov kľúčov a hodnôt, ktoré neudržiavajú špecifické poradie v dátových prvkoch. | Stromová mapa je trieda kolekcie založená na mape, ktorá sa používa na ukladanie párov kľúčov a hodnôt, ktoré zachovávajú vzostupné poradie dátových prvkov. |
Objednávka | |
HashMap neudržiava objednávku. | Stromová mapa zachováva vzostupné poradie. |
Null Key | |
HashMap môže obsahovať jeden nulový kľúč. | Stromová mapa nemôže mať nulový kľúč. |
Výkon | |
HashMap je rýchlejšia ako TreeMap. | TreeMap je pomalšia ako HashMap. |
Zhrnutie – HashMap vs TreeMap
Programovacie jazyky ako Java obsahujú rámec kolekcie. V poliach môže byť pevný počet prvkov. Preto by mala byť veľkosť poľa inicializovaná na začiatku. V kolekciách môže programátor uložiť veľa prvkov podľa potreby. Neexistuje žiadna konkrétna suma na uloženie. Mapa je rozhranie patriace do rámca kolekcie. HashMap je trieda kolekcie založená na mape, ktorá sa používa na ukladanie párov kľúčov a hodnôt, ktoré neudržiavajú špecifické poradie v dátových prvkoch. TreeMap je trieda kolekcie založená na mape, ktorá sa používa na ukladanie párov kľúčov a hodnôt, ktoré zachovávajú vzostupné poradie dátových prvkov. Tento článok diskutoval o rozdieloch medzi HashMap a TreeMap, ktoré implementujú rozhranie mapy. Rozdiel medzi HashMap a TreeMap je v tom, že HashMap neudržiava špecifické poradie dátových prvkov, zatiaľ čo TreeMap zachováva vzostupné poradie dátových prvkov.