Erot HashMapin ja TreeMapin välillä

HashMap on ollut osa Java-kokoelmaa. Se tarjoaa Java Map Interface -sovelluksen perustoiminnon. Tiedot tallennetaan (avain, arvo) -pareihin. Sinun on tiedettävä sen avain arvon käyttämiseen. HashMap tunnetaan nimellä HashMap, koska se käyttää Hashing-tekniikkaa. TreeMap- sovellusta käytetään Map Interface- ja NavigableMap-sovellusten toteuttamiseen abstraktin luokan kanssa. Kartta lajitellaan avainten luonnollisessa järjestyksessä tai vertailun avulla, joka tarjotaan kartan luomishetkellä, riippuen siitä mitä rakentajaa sitä käytetään.

Yhdenmukaisuudet HashMapin ja TreeMapin välillä

Erojen lisäksi hashmapin ja puukartan välillä on seuraavat yhtäläisyydet:

  • Sekä HashMap- että TreeMap-luokat toteuttavat Sarjasovitettavat ja Kloonattavat rajapinnat.
  • Sekä HashMap että TreeMap laajentavat AbstractMap-luokkaa.
  • Sekä HashMap- että TreeMap-luokat toimivat avain-arvopareilla.
  • Sekä HashMap että TreeMap ovat synkronoimattomia kokoelmia.
  • Sekä HashMap että TreeMap epäonnistuvat nopeasti kokoelmissa.

Molemmat toteutukset ovat osa keräyskehystä ja tallentavat tietoja avain-arvopareihin.

Java-ohjelma näyttää HashMap ja TreeMap

Tässä on Java-ohjelma, joka osoittaa kuinka elementit laitetaan ja noudetaan hashmapista:

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

lähtö:

Tuloksesta on selvää, että hashmap ei ylläpitä mitään järjestystä. Tässä on Java-ohjelma, joka osoittaa, miten elementit asetetaan ja noudetaan puukartasta.

Koodi:

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

lähtö:

Lähdöstä havaitaan, että avaimet lajitellaan luonnollisessa järjestyksessä. Siksi Treemap ylläpitää lajiteltua järjestystä.

Head to Head -erot HashMapin ja TreeMapin välillä (infografia)

Seuraavassa on tärkeimmät erot HashMap: n ja TreeMap: n välillä

Keskeinen ero HashMap vs. TreeMap kanssa

Seuraavat kohdat ovat avainero HashMap ja TreeMap:

1. Rakenne ja toteutus

Hash Map on hajautettuun taulukkoon perustuva toteutus. Se laajentaa tiivistelmäkartaluokkaa ja toteuttaa Kartta-käyttöliittymän. Hash-kartta toimii hajauttamisen periaatteella. Kartta-toteutus toimii kopioituna hash-taulukkona, mutta kun kauhat ovat liian suuria, ne muunnetaan puusolmuiksi, jokaisella on samanlainen rakenne kuin TreeMap-solmuilla. TreeMap laajentaa Abstract Map -luokkaa ja toteuttaa navigoitavan kartan käyttöliittymän. Puukartan taustalla oleva tietorakenne on puna-musta puu.

2. Toistojärjestys

Hash Map -järjestysjärjestys on määrittelemätön, kun taas TreeMap-elementit on tilattu luonnollisessa järjestyksessä tai vertailijan avulla määritettyyn mukautettuun järjestykseen.

3. Suorituskyky

Koska Hashmap on hashtable-pohjainen toteutus, se tarjoaa vakioajan suorituskyvyn, joka on yhtä suuri kuin O (1) suurimmalle osalle yleisistä operaatioista. Elementin haku hajakartassa on O (1). Mutta jos hashmapissa on virheellinen toteutus, se voi johtaa muistiviestien lisääntymiseen ja suorituskyvyn heikkenemiseen. Toisaalta TreeMap tarjoaa suorituskyvyn O (log (n)). Koska hashmap on hashtable -pohjainen, se vaatii vierekkäisen muistialueen, kun taas puukartta käyttää vain kohteiden pitämiseen tarvittavaa muistimäärää. Siksi HashMap on aikatehokkaampi kuin puukartta, mutta puukartta on tilaa tehokkaampi kuin HashMap.

4. Null-käsittely

HashMap sallii melkein yhden nolla-avaimen ja monet nolla-arvot, kun taas puukartassa nollaa ei voida käyttää avaimena, vaikka nolla-arvot ovat sallittuja. Jos null-arvoa käytetään avaimena hashmapissa, se heittää nollaosoittimen poikkeuksen, koska se käyttää sisäisesti vertailun tai vertailun menetelmää elementtien lajitteluun.

Taulukon vertailu

Tässä on vertailutaulukko, joka näyttää erot hashmapin ja puukartan välillä:

Vertailun perusteetHashMapTreemap
Syntaksijulkisen luokan HashMap laajentaa AbstractMap-toteutuksia Map, Cloneable, Serializablejulkisen luokan TreeMap laajentaa AbstractMap-työkalujaNavigableMap, Cloneable, Serializable
TilaaminenHashMap ei tarjoa elementtitilausta.Elementit tilataan luonnollisessa tai räätälöityssä järjestyksessä.
NopeusNopeastiHidas
Null-avaimet ja arvotMahdollistaa melkein yhden näppäimen nolla- ja useita nolla-arvoja.Se ei salli nollia avaimena, mutta sallii useita nolla-arvoja.
Muistin kulutusHashMap kuluttaa enemmän muistia alla olevan Hash-taulukon takia.Kuluttaa vähemmän muistia verrattuna HashMapiin.
toiminnallisuusTarjoaa vain perusominaisuudetSe tarjoaa rikkaampia ominaisuuksia.
Käytetty vertailumenetelmäPohjimmiltaan käyttää equals () -menetelmää avainten vertaamiseen.Käyttää vertailun () tai vertailun () vertailumenetelmää avainten vertailuun.
Rajapinta toteutettuKartta, Sarjakuvaus ja KloonattavuusNavigoitava Kartta, Sarjakuvaus ja Kloonattavuus
EsitysAntaa suorituskyvyn O (1).Tarjoaa O: n suorituskyvyn (log n)
TietorakenneKäyttää hash-taulukkoa tietorakenteena.Hyödyntää punaisen mustan puun käyttöä tietojen tallennukseen.
Homogeeniset ja heterogeeniset elementitSe sallii sekä homogeeniset että heterogeeniset elementit, koska se ei suorita lajittelua.Se sallii vain homogeeniset elementit lajitellessaan.
Käytä koteloitaKäytetään, kun emme vaadi avain-arvo-pareja lajiteltuun järjestykseen.Käytetään, kun kartta-avain-arvoparit on lajiteltava.

johtopäätös

Artikkelista päätellään, että hashmap on Map-käyttöliittymän yleiskäyttöinen toteutus. Se tarjoaa O: n (1) suorituskyvyn, kun taas Treemap tarjoaa O: n (log (n)) suorituskyvyn. Siksi HashMap on yleensä nopeampi kuin TreeMap.

Suositellut artikkelit

Tämä on opas kohtaan HashMap vs. TreeMap. Tässä keskustellaan johdannosta HashMap vs. TreeMap, eroja Hashmap ja Treemap välillä ja vertailutaulukko. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. WebLogic vs JBoss
  2. Lista vs Aseta
  3. Git Fetch vs Git Pull
  4. Kafka vs Spark | Suurimmat erot
  5. Kafkan ja Kinesisin viisi tärkeintä eroa