Razlike med HashMap in TreeMap

HashMap je bil del zbirke Jave. Omogoča osnovno izvajanje vmesnika Java Map. Podatki so shranjeni v parih (ključ, vrednost). Za dostop do vrednosti morate vedeti njen ključ. HashMap je znan kot HashMap, ker uporablja tehniko Hashing. TreeMap se uporablja za implementacijo vmesnika zemljevida in navigableMap z abstraktnim razredom. Zemljevid je razvrščen po naravnem vrstnem redu njegovih ključev ali primerjalniku, ki je bil ustvarjen v času izdelave zemljevida, odvisno od tega, kateri konstruktor se uporablja.

Podobnosti med HashMap in TreeMap

Poleg razlik obstajajo naslednje podobnosti med hashmap in treemap:

  • Tako razredi HashMap kot TreeMap uporabljajo vmesnike, ki jih je mogoče prilagoditi in jih je mogoče odpreti.
  • Tako HashMap kot TreeMap razširita razred AbstractMap.
  • Oba razreda HashMap in TreeMap delujeta na parih ključ-vrednost.
  • Tako HashMap kot TreeMap sta nesinhronizirani zbirki.
  • Tako HashMap kot TreeMap ne uspevata hitro.

Obe izvedbi sta del okvira zbiranja in shranjujeta podatke v pare Key-value.

Program Java, ki prikazuje HashMap in TreeMap

Tukaj je java program, ki prikazuje, kako so elementi postavljeni in pridobljeni iz hashmapa:

package com.edubca.map;
import java.util.*;
class HashMapDemo
(
// This function prints frequencies of all elements
static void printFrequency(int arr())
(
// Create an empty HashMap
HashMap hashmap =
new HashMap ();
// Iterate through the given array
for (int i = 0; i < arr.length; i++)
(
Integer value = hashmap.get(arr(i));
// If first occurrence of the element
if (hashmap.get(arr(i)) == null)
hashmap.put(arr(i), 1);
// If elements already present in hash map
else
hashmap.put(arr(i), ++value);
)
// Print result
for (Map.Entry m:hashmap.entrySet())
System.out.println("Frequency of " + m.getKey() +
" is " + m.getValue());
)
// Main method to test the above method
public static void main (String() args)
(
int arr() = (10, 40, 5, 12, 5, 7, 10);
printFrequency(arr);
)
)

Izhod:

Iz izhoda je razvidno, da hashmap ne vzdržuje nobenega reda. Tu je java program, ki prikazuje, kako se elementi postavljajo in pridobivajo iz zemljevida zemljevida.

Koda:

package com.edubca.map;
import java.util.*;
class TreeMapDemo
(
// This function prints frequencies of all elements
static void printFrequency(int arr())
(
// Create an empty HashMap
TreeMap treemap =
new TreeMap ();
// Iterate through the given array
for (int i = 0; i < arr.length; i++)
(
Integer value = treemap.get(arr(i));
// If first occurrence of element
if (treemap.get(arr(i)) == null)
treemap.put(arr(i), 1);
// If elements already present in hash map
else
treemap.put(arr(i), ++value);
)
// Print result
for (Map.Entry m: treemap.entrySet())
System.out.println("Frequency of " + m.getKey() +
" is " + m.getValue());
)
// Main method to test above method
public static void main (String() args)
(
int arr() = (10, 40, 5, 12, 5, 7, 10);
printFrequency(arr);
)
)

Izhod:

Iz izhoda je razvidno, da so tipke razvrščene v naravnem vrstnem redu. Zato Treemap vzdržuje vrstni red.

Razlike med HashMap-om in TreeMap-om (Infographics)

Spodaj so zgornje razlike med HashMapom in TreeMapom

Ključna razlika HashMap-a in TreeMap-a

Sledijo točke ključnih razlik HashMap in TreeMap:

1. Struktura in izvajanje

Hash Map je izvedba na osnovi hash tabele. Razširja razred Abstraktna karta in izvaja vmesnik Map. Hash Map deluje na principu mešanja. Izvedba Zemljevida deluje kot tabela hash buted, vendar ko vedra postanejo prevelike velikosti, se pretvorijo v vozlišča Tree, vsaka pa ima podobno strukturo kot vozlišča TreeMap. TreeMap razširja razred abstraktnih zemljevidov in uporablja vmesnik Navigable Map. Osnovna struktura podatkov za zemljevid zemljevida je rdeče-črno drevo.

2. Iteracijski ukaz

Iteracijski vrstni red Hash Map ni določen, medtem ko so elementi TreeMap urejeni v naravnem vrstnem redu ali po meri, določeni s primerjalnikom.

3. Zmogljivost

Ker je Hashmap izvedba, ki temelji na hitrih načinih, zagotavlja zmogljivost v stalnem času, ki je za večino običajnih operacij enaka O (1). Čas, potreben za iskanje elementa na hash zemljevidu, je O (1). Če pa v hashmapu pride do nepravilne izvedbe, lahko to povzroči dodatne režijske pomnilnike in poslabšanje zmogljivosti. Po drugi strani TreeMap zagotavlja zmogljivost O (log (n)). Ker temelji hashmap, je potreben neprekinjen obseg pomnilnika, medtem ko treemap uporablja samo toliko pomnilnika, ki je potreben za shranjevanje predmetov. Zato je HashMap časovno učinkovitejši od zemljevida zemljevidov, vendar je treemap prostorno bolj učinkovit kot HashMap.

4. Ničelno ravnanje

HashMap omogoča skoraj en null ključ in veliko ničelnih vrednosti, medtem ko v preskusni mapi null ni mogoče uporabiti kot ključno, čeprav so nične vrednosti dovoljene. Če je null uporabljen kot ključ v hashmapu, bo vrgel izjemo ničelnega kazalca, ker interno uporablja metodo primerjave ali primerjaveTo za razvrščanje elementov.

Primerjava preglednice

Tukaj je primerjalna tabela, ki prikazuje razlike med hashmap in treemap:

Osnova za primerjavoHashMapTreeMap
Sintaksajavni razred HashMap razširja AbstractMap izvaja Map, Cloneable, Serializablejavni razred TreeMap razširja izvedbe AbstractMapNavigableMap, Cloneable, Serializable
NaročanjeHashMap ne zagotavlja nobenega naročila za elemente.Elementi so razvrščeni v naravnem ali prilagojenem vrstnem redu.
HitrostHitroPočasi
Ničelni ključi in vrednostiOmogoča skoraj eno tipko kot nič in več ničelnih vrednosti.Ne dovoljuje null kot ključ, vendar omogoča več ničelnih vrednosti.
Poraba pomnilnikaHashMap porabi več pomnilnika zaradi osnovne Hash Tabele.V primerjavi s HashMapom porabi manj pomnilnika.
FunkcionalnostPonuja samo osnovne funkcijeOmogoča bogatejše lastnosti.
Uporabljena metoda primerjaveV osnovi uporablja metodo equals () za primerjavo ključev.Za primerjavo ključev uporabljamo metodo primerjave () ali primerjaveTo ().
Vmesnik izvedenZemljevid, prilagodljiv in kloniranNavigable Map, Serializable in Cloneable
IzvedbaOmogoči uspešnost O (1).Zagotavlja delovanje O (log n)
Struktura podatkovKot strukturo podatkov uporablja hash tabelo.Uporablja rdeče-črno drevo za shranjevanje podatkov.
Homogeni in heterogeni elementiOmogoča homogene in raznolike elemente, ker ne izvaja nobenega razvrščanja.Pri sortiranju omogoča le homogene elemente.
Uporabite primereUporabljamo, kadar ne potrebujemo parov ključ-vrednost v razvrščenem vrstnem redu.Uporablja se, kadar je treba razvrstiti pare ključ-vrednost zemljevida.

Zaključek

Iz članka je sklenjeno, da je hashmap splošna izvedba vmesnika Map. Omogoča delovanje O (1), medtem ko Treemap zagotavlja zmogljivost O (log (n)). Zato je HashMap ponavadi hitrejši kot TreeMap.

Priporočeni članki

To je vodnik za HashMap proti TreeMap. Tukaj razpravljamo o uvodu v HashMap proti TreeMap-u, o razlikah med Hashmapom in Treemapom ter primerjalni tabeli. Obiščite lahko tudi druge naše predlagane članke, če želite izvedeti več -

  1. WebLogic vs JBoss
  2. Seznam proti nizu
  3. Git Fetch proti Git Pull
  4. Kafka proti iskri | Najboljše razlike
  5. Najboljših 5 razlik med Kafko in Kinesis