Forskjeller mellom HashMap og TreeMap

HashMap har vært en del av Javas samling. Det gir den grunnleggende implementeringen av Java Map Interface. Dataene lagres i par (nøkkel, verdi). Du må vite nøkkelen for å få tilgang til en verdi. HashMap er kjent som HashMap fordi den bruker Hashing-teknikken. TreeMap brukes til å implementere Map Interface og NavigableMap med Abstract Class. Kartet er sortert etter den naturlige rekkefølgen på dens nøkler, eller av den komparator som ble gitt på tidspunktet for opprettelsen av kartet, avhengig av hvilken konstruktør det brukes.

Likheter mellom HashMap og TreeMap

Bortsett fra forskjellene, er det følgende likheter mellom hashmap og treemap:

  • Både HashMap- og TreeMap-klasser implementerer Serialiserbare og Cloneable grensesnitt.
  • Både HashMap og TreeMap utvider AbstractMap-klassen.
  • Både HashMap og TreeMap klasser opererer på nøkkelverdipar.
  • Både HashMap og TreeMap er ikke-synkroniserte samlinger.
  • Både HashMap og TreeMap svikter raske samlinger.

Begge implementeringene er en del av samlingsrammen og lagrer data i nøkkelverdipar.

Java-program som viser HashMap og TreeMap

Her er et java-program som demonstrerer hvordan elementer blir satt og hentet fra hashmap:

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);
)
)

Produksjon:

Fra utgangen er det tydelig at hashmap ikke opprettholder noen orden. Her er et java-program som demonstrerer hvordan elementer blir satt og hentet fra trekart.

Kode:

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);
)
)

Produksjon:

Fra utgangen observeres det at tastene er sortert i en naturlig rekkefølge. Derfor opprettholder Treemap sortert rekkefølge.

Head to Head forskjeller mellom HashMap og TreeMap (Infographics)

Nedenfor er toppen forskjeller mellom HashMap og TreeMap

Nøkkelforskjellen på HashMap vs TreeMap

Følgende er poengene med nøkkelforskjell HashMap og TreeMap:

1. Struktur og implementering

Hash Map er en hash-tabellbasert implementering. Det utvider klassen Abstract Map og implementerer Map-grensesnittet. Et Hash-kart fungerer på hashingprinsippet. Kartimplementeringen fungerer som et bøtte med hasjbord, men når bøtter blir for store i størrelse, blir de konvertert til treknoder, som hver har en lignende struktur som nodene til TreeMap. TreeMap utvider abstrakt kartklasse og implementerer et navigerbart kartgrensesnitt. Den underliggende datastrukturen for trekartet er et rød-svart tre.

2. Iterasjonsrekkefølge

Iteration rekkefølgen på Hash Map er udefinert mens elementer av et TreeMap er bestilt i naturlig rekkefølge eller i en tilpasset rekkefølge spesifisert ved hjelp av en komparator.

3. Ytelse

Ettersom Hashmap er en hashtable-basert implementering, gir den ytelse med konstant tid som er lik O (1) for de fleste vanlige operasjoner. Tiden som kreves for å søke i et element på et hasjkart er O (1). Men hvis det er en feil implementering i hashmap, kan dette føre til ytterligere hukommelseskostnader og ytelsesforringelse. På den annen side gir TreeMap en ytelse av O (log (n)). Siden hashmap er hashtable-basert, krever det et sammenhengende minneområde, mens et trekart bare bruker mengden minne som kreves for å holde elementer. Derfor er HashMap mer tidseffektiv enn treemap, men treemap er mer arealeffektiv enn HashMap.

4. Nullhåndtering

HashMap tillater nesten én nullnøkkel og mange nullverdier, mens i et trekart ikke kan null brukes som nøkkel selv om nullverdier er tillatt. Hvis null brukes som en nøkkel i hashmap, vil den kaste et unntak fra nullpeker fordi den internt bruker sammenlignings- eller sammenligningsmetode for sortering av elementer.

Sammenligning av tabell

Her er en sammenligningstabel som viser forskjeller mellom hashmap og treemap:

Grunnlag for sammenligningHashMapTreeMap
syntaxoffentlig klasse HashMap utvider AbstractMap implementerer Map, Cloneable, Serializablepublic class TreeMap utvider AbstractMap-implementeringerNavigableMap, Cloneable, Serializable
bestillingHashMap gir ingen ordre for elementer.Elementer bestilles i en naturlig eller tilpasset rekkefølge.
HastighetFortSakte
Nulltaster og verdierLar nesten en tast som null og flere nullverdier.Det tillater ikke null som nøkkel, men tillater flere nullverdier.
MinneforbrukHashMap bruker mer minne på grunn av den underliggende Hash-tabellen.Forbruker mindre minne i forhold til HashMap.
funksjonalitetTilbyr bare grunnleggende funksjonerDet gir rikere funksjoner.
Sammenligningsmetode bruktI utgangspunktet bruker likemetoden () metoden for å sammenligne nøkler.Bruker sammenligne () eller sammenligne To () metoden for å sammenligne nøkler.
Grensesnitt implementertKart, seriserbar og klonbarNavigerbart kart, seriserbar og klonbar
OpptredenGir en forestilling av O (1).Gir ytelse av O (log n)
Data strukturBruker hashtabellen som en datastruktur.Bruker Red-Black Tree for datalagring.
Homogene og heterogene elementerDet tillater homogene så vel som heterogene elementer fordi den ikke utfører noen sortering.Den tillater bare homogene elementer når den utfører sortering.
Bruk tilfellerBrukes når vi ikke krever nøkkelverdipar i sortert rekkefølge.Brukes når nøkkelverdipar på et kart kreves sortert.

Konklusjon

Fra artikkelen konkluderes det med at hashmap er en generell implementering av kartgrensesnittet. Den gir ytelse av O (1), mens Treemap gir en ytelse av O (log (n)). Derfor er HashMap vanligvis raskere enn TreeMap.

Anbefalte artikler

Dette er en guide til HashMap vs TreeMap. Her diskuterer vi introduksjonen til HashMap vs TreeMap, Forskjeller mellom Hashmap og Treemap og en sammenligningstabel. Du kan også gå gjennom de andre foreslåtte artiklene våre for å lære mer–

  1. WebLogic vs JBoss
  2. Liste vs sett
  3. Git Fetch vs Git Pull
  4. Kafka vs Spark | Topp forskjeller
  5. Topp 5 forskjeller av Kafka vs Kinesis