Ero Java-sovelluksen HashMap ja TreeMap välillä

Kirjoittaja: Laura McKinney
Luomispäivä: 2 Huhtikuu 2021
Päivityspäivä: 13 Saattaa 2024
Anonim
Ero Java-sovelluksen HashMap ja TreeMap välillä - Tekniikka
Ero Java-sovelluksen HashMap ja TreeMap välillä - Tekniikka

Sisältö


HashMap ja TreeMap ovat Kartta-luokkia ja toteuttavat molemmat Kartta-käyttöliittymän. Kartta on objekti, joka tallentaa avain-arvopareja, joissa jokainen avain on ainutlaatuinen ja jossa voi olla samoja arvoja. HashMap-luokka käyttää hash-taulukkoa tietorakenteena. TreeMap käyttää punaisen mustan puun tietorakennetta. Tärkein ero HashMap: n ja Treemap: n välillä on, että HashMap ei säilytä lisäysjärjestystä, kun taas Treemap tekee.

Joten aloittakaamme keskustelu HashMapin ja TreeMapin eroista alla olevan vertailukaavion avulla.

  1. Vertailutaulukko
  2. Määritelmä
  3. Keskeiset erot
  4. johtopäätös

Vertailutaulukko

Vertailun perusteetHashMapTreemap
perustiedot HashMap ei yllä lisäysjärjestystä.TreeMap ylläpitää lisäysjärjestystä.
TietorakenneHashMap käyttää Hash-taulukkoa taustana olevana tietorakenteena.TreeMap käyttää punaista mustaa puuta taustana olevana tietorakenteena.
Null-avaimet ja arvot HashMap sallii nolla-avaimen kerran mainostamisen nolla-arvon minkä tahansa ajan.TreeMap ei salli nolla-avainta, mutta sallii nolla-arvot milloin tahansa.
Laajentaa ja toteuttaaHashMap laajentaa AbstractMap-luokkaa ja toteuttaa Kartta-käyttöliittymän.TreeMap laajentaa AbstractMap-luokkaa ja toteuttaa SortedMap- ja NavigableMap-käyttöliittymän.
EsitysHashMap toimii nopeammin.TreeMap toimii HashMapiin verrattuna hitaammin.


Määritelmä HashMap

HashMap on Kartta-luokka. Se käyttää hash-pöytä, tietorakenteena, jotta karttanäppäinarvopari voidaan tallentaa. Avain-arvoparin lisääminen tapahtuu painikkeella hash koodin n näppäimet. Siksi jokaisen kartan avaimen on oltava ainutlaatuinen, koska sitä käytetään arvojen hakemiseen.

Lisäysjärjestys HashMapissa on ei säilynyt, mikä tarkoittaa, että hashmap-esine ei palauta elementtejä siinä järjestyksessä kuin ne on lisätty. Toisaalta elementtien palautusjärjestystä ei ole vahvistettu.

avain saa olla TYHJÄ kerralla, mutta arvot voi olla TYHJÄ milloin tahansa useita kertoja. HashMap voi sisältää heterogeeninen objektit avaimille samoin kuin arvot.


HashMapia on neljä rakentajaa:

HashMap () HashMap (Kartta m) HashMap (int kapasiteetti), HashMap (int kapasiteetti, float fillRatio)

ensimmäinen rakentaja luo tyhjän HashMap-objektin. toinen rakentaja alustaa HashMapin Map m -elementeillä. kolmas rakentaja alustaa HashMap argumentin tarjoamalla kapasiteetilla. neljäs rakentaja alustaa HashMap-objektin kapasiteetin ja täyttösuhteen.

Oletusarvo kapasiteetti of HashMap on 16, ja oletus täyttösuhde of HashMap on 0.75.

Määritelmä TreeMap

Kuten HashMap, Treemap on myös Kartta-luokka. TreeMap laajenee AbstractMap luokka ja työvälineet NavigabelMap ja SortedMap. TreeMap-objektit tallentavat karttaelementit puurakenteeseen. Kartan tallentamiseen käytetty tietorakenne on Puna-musta puu.

TreeMap tallentaa avainarvoparin lajiteltuun järjestykseen, joka auttaa elementtien nopeaa noutamista. TreeMap-objekti palauttaa elementit lajitellut (nouseva) Tilaus.

TreeMap-malleja on neljä:

TreeMap () TreeMap (vertailu <? Super K> comp) TreeMap (Kartta <? Laajentaa K,? Ulottuu V> m) TreeMap (SortedMap sm)

ensimmäinen rakentajat luovat TreeMapista tyhjän objektin, joka lajitellaan sen avaimet luonnollisessa järjestyksessä. toinen rakentaja luo tyhjän puukartan, jonka lajittelee Vertailun cmp. kolmas yllä oleva rakentaja luo puukartan, joka alustetaan Kartta m. neljäs rakentaja luo puukartan, joka alustetaan SortedMap sm.

Puukartalla ei ole omaa uutta menetelmää, se käyttää NavigableMap- ja SortedMap-rajapintojen menetelmää sekä AbstractMap-luokkaa.

  1. Molempia luokkia käytetään karttaobjektien luomiseen, mutta HashMapin ja Treemap: n perusero on, että HashMap ei yllä lisäysjärjestystä, kun taas puukartta tekee.
  2. Tietorakenne, jota Hashmap käyttää karttaelementtien tallentamiseen, on hash-taulukko ja TreeMap käyttää kartan elementtien tallentamiseen käyttämää tietorakennetta puna-mustan puun muodossa.
  3. Sekä luokka Hashmap että Treemap laajentavat AbstractMap-luokkaa, mutta HashMap-luokka toteuttaa Kartta-käyttöliittymän ja TreeMap toteuttaa NavigableMap- ja SortedMap-käyttöliittymän.
  4. Arvot voivat olla nolla, monta kertaa molemmissa, mutta avaimen sallitaan olla nolla vain kerran HashMapissa, ja avain ei voi koskaan olla puukartassa.
  5. HashMapin suorituskyky on nopeampaa. Se ei tuhlaa aikaa karttoelementtien lajitteluun, kuten TreeMap tekee. Siksi TreeMap toimii hitaammin kuin HashMap.

johtopäätös:

TreeMapia tulisi käyttää vain, kun tarvitset avainarvoparin lajiteltuina. Koska lajittelu sisältää suorituskustannukset. HashMap, joka ei ole synkronoitu, toimii nopeammin.