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 perusteet | HashMap | Treemap |
Syntaksi | julkisen luokan HashMap laajentaa AbstractMap-toteutuksia Map, Cloneable, Serializable | julkisen luokan TreeMap laajentaa AbstractMap-työkalujaNavigableMap, Cloneable, Serializable |
Tilaaminen | HashMap ei tarjoa elementtitilausta. | Elementit tilataan luonnollisessa tai räätälöityssä järjestyksessä. |
Nopeus | Nopeasti | Hidas |
Null-avaimet ja arvot | Mahdollistaa melkein yhden näppäimen nolla- ja useita nolla-arvoja. | Se ei salli nollia avaimena, mutta sallii useita nolla-arvoja. |
Muistin kulutus | HashMap kuluttaa enemmän muistia alla olevan Hash-taulukon takia. | Kuluttaa vähemmän muistia verrattuna HashMapiin. |
toiminnallisuus | Tarjoaa vain perusominaisuudet | Se tarjoaa rikkaampia ominaisuuksia. |
Käytetty vertailumenetelmä | Pohjimmiltaan käyttää equals () -menetelmää avainten vertaamiseen. | Käyttää vertailun () tai vertailun () vertailumenetelmää avainten vertailuun. |
Rajapinta toteutettu | Kartta, Sarjakuvaus ja Kloonattavuus | Navigoitava Kartta, Sarjakuvaus ja Kloonattavuus |
Esitys | Antaa suorituskyvyn O (1). | Tarjoaa O: n suorituskyvyn (log n) |
Tietorakenne | Käyttää hash-taulukkoa tietorakenteena. | Hyödyntää punaisen mustan puun käyttöä tietojen tallennukseen. |
Homogeeniset ja heterogeeniset elementit | Se sallii sekä homogeeniset että heterogeeniset elementit, koska se ei suorita lajittelua. | Se sallii vain homogeeniset elementit lajitellessaan. |
Käytä koteloita | Kä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 -
- WebLogic vs JBoss
- Lista vs Aseta
- Git Fetch vs Git Pull
- Kafka vs Spark | Suurimmat erot
- Kafkan ja Kinesisin viisi tärkeintä eroa