Erinevus HashMapi ja Java kaardi TreeMapi vahel

Autor: Laura McKinney
Loomise Kuupäev: 2 Aprill 2021
Värskenduse Kuupäev: 10 Mai 2024
Anonim
Erinevus HashMapi ja Java kaardi TreeMapi vahel - Tehnoloogia
Erinevus HashMapi ja Java kaardi TreeMapi vahel - Tehnoloogia

Sisu


HashMap ja TreeMap on Map klassid ja mõlemad rakendavad Map liidest. Kaart on objekt, kuhu salvestatakse võtme-väärtuse paarid, kus iga võti on ainulaadne ja millel võivad olla dubleerivad väärtused. HashMap-klass kasutab räsitabelit andmestruktuurina. Puukaart kasutab andmestruktuurina punane-musta puud. Peamine erinevus HashMapi ja puukaardi vahel on see, et HashMap ei säilita sisestamise järjekorda, samas kui Puukaart teeb.

Alustame siis arutelu HashMapi ja TreeMapi erinevuste üle allpool toodud võrdlustabelite abil.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm

Võrdluse alusHashMapPuukaart
Põhiline HashMap ei pea sisestamise järjekorda.TreeMap säilitab sisestamise järjekorra.
AndmestruktuurHashMap kasutab alusandmete struktuurina Hash Tablet.TreeMap kasutab alusandmete struktuurina punast-musta puud.
Nullvõtmed ja väärtused HashMap lubab Nullklahvi üks kord, kui Null väärtustab suvalise aja.TreeMap ei luba Null-võtit, kuid lubab Null-väärtusi suvalise aja jooksul.
Laiendab ja rakendabHashMap laiendab AbstractMap klassi ja rakendab kaardiliidese.TreeMap laiendab AbstractMap klassi ja rakendab liidest SortedMap ja NavigableMap.
EtendusHashMap töötab kiiremini.Võrreldes HashMapiga töötab TreeMap aeglasemalt.


Määratlus HashMap

HashMap on Map klass. See kasutab räsilaud, andmestruktuurina kaartide võtme väärtuste paari salvestamiseks. Võtme-väärtuste paari sisestamine toimub, kasutades nuppu räsi kood selle võtmed. Seega peab iga kaardi võti olema kordumatu, kuna seda kasutatakse väärtuste leidmiseks.

Sisestamise järjekord HashMapis on mitte säilinud, mis tähendab, et hasmapi objekt ei tagasta elemente sisestamise järjekorras. Teisest küljest pole elementide tagastamise järjekord kindlaks määratud.

võti on lubatud olla NULL korraga, kuid väärtused võib olla NULL igal ajal. HashMap võib sisaldada järgmist heterogeenne nii võtmete kui ka väärtuste objektid.


HashMapi konstruktoreid on neli:

HashMap () HashMap (Map m) HashMap (keskmine mahutavus), HashMap (keskmine mahutavus, float fillRatio)

esimene ehitaja loob HashMapi tühja objekti. teine konstruktor initsialiseerib HashMap Map m elementide abil. kolmas ehitaja initsialiseerib HashMap argumendis toodud mahuga. neljas ehitaja initsialiseerib HashMap-objekti mahu ja täitesuhte.

Vaikimisi mahutavus of HashMap on 16ja vaikimisi täitmissuhe of HashMap on 0.75.

Puukaardi määratlus

Nagu HashMap, Puukaart on ka Mapsi klass. TreeMap laieneb AbstractMap klass ja seadmed NavigabelMap ja Sorteeritud kaart. Objektid TreeMap salvestab kaardielemendid puustruktuuris. Kaardi salvestamiseks kasutatakse andmestruktuuri Punane-must puu.

TreeMap salvestab võtmeväärtuste paari sorteeritud järjekorras, mis aitab elemente kiiresti kätte saada. Objekt TreeMap tagastab elemendid sorteeritud (tõusev) tellida.

TreeMapi konstruktoreid on neli:

TreeMap () TreeMap (Võrdlus <? Super K> comp) TreeMap (Kaart <? Laiendab K,? Ulatub V> m) TreeMap (SortedMap sm)

esimene konstruktorid loovad TreeMapi tühja objekti, mis sorteeritakse selle võtmete loomulikus järjekorras. teine ehitaja loob tühja puu kaardi, mille sorteerib Võrdleja cmp. kolmas Ülaltoodud konstruktor loob puukaardi, mis lähtestatakse, kasutades Kaart m. neljas ehitaja loob puukaardi, mis lähtestatakse, kasutades kirjeid Sorteeritud kaart sm.

Puukaardil pole ühtegi uut meetodit, ta kasutab liideste NavigableMap ja SortedMap ning klassi AbstractMap liideste meetodit.

  1. Mõlemat klassi kasutatakse kaardiobjektide loomiseks, kuid põhiline erinevus HashMapi ja puukaardi vahel on see, et HashMap ei säilita sisestusjärjekorda, samas kui puukaart teeb.
  2. Andmestruktuur, mida Hashmap kasutab kaardielementide hoidmiseks, on räsitabel ja TreeMap kasutab kaardielementide salvestamiseks kasutatavat andmestruktuuri punaselt mustanahaline puu.
  3. Mõlemad klassid Hashmap ja Treemap laiendavad klassi AbstractMap, kuid HashMap klass rakendab Map liidest ja TreeMap rakendab NavigableMap ja SortedMap liidest.
  4. Väärtused võivad olla tühised suvalises arvul kordades, kuid võtmes on HashMapis lubatud olla ainult üks kord Null ja võti ei saa kunagi olla puukaardis.
  5. HashMapi jõudlus on kiirem. See ei raiska aega kaardielementide sorteerimisse, nagu teeb TreeMap. Seega toimib TreeMap aeglasemalt kui HashMap.

Järeldus:

TreeMapit tuleks kasutada ainult siis, kui vajate võtmeväärtuste paari sorteeritud kujul. Kuna sortimine sisaldab jõudluskulusid. HashMap sünkroniseerimata toimib kiiremini.