Peamine erinevus – HashMap vs TreeMap
Programmeerimisel on andmete kogumiseks erinevaid mehhanisme. Kogud on üks andmete salvestamise viise. Programmeerimiskeeled, nagu Java, kasutavad kollektsioone. See on klasside ja liidestega raamistik andmeelementide kogumi salvestamiseks ja manipuleerimiseks. Tavalises massiivis on salvestamiseks fikseeritud arv elemente. See on massiivide piirang. Selle asemel saab programmeerija kasutada kogusid. Selliseid toiminguid nagu sisestamine, kustutamine, sortimine ja otsimine saab teha kogude abil. Javas kuulub kaardi liides kogudesse. Kaarti kasutatakse andmete esitamiseks võtme-väärtuste paarides. On ainult kordumatud võtmed ja igal neist on vastav väärtus. HashMap ja TreeMap on klassid, mis rakendavad kaardi liidest. HashMap on kaardipõhine kogumisklass, mida kasutatakse võtme- ja väärtusepaaride salvestamiseks, mis ei hoia andmeelementides kindlat järjekorda. TreeMap on kaardipõhine kogumisklass, mida kasutatakse võtme- ja väärtuspaaride salvestamiseks, mis säilitavad andmeelementide kasvavas järjekorras. Peamine erinevus HashMapi ja TreeMapi vahel on see, et HashMap ei säilita andmeelementides kindlat järjekorda, samas kui TreeMap säilitab andmeelementide kasvavas järjekorras.
Mis on HashMap?
HashMap on klass, mis rakendab kaardi liidest. See laiendab AbstractMap klassi ja rakendab kaardi liidest. HashMap sisaldab võtit ja väärtuste paare. Iga element on ainulaadne. HashMapis on elemente lihtne klahvi abil leida. HashMapi deklareerimine on järgmine.
avalik klass HashMap laiendab AbstractMap rakendab kaardi, kloonitava, jadastatava
K viitab klahvile, V aga sellele konkreetsele klahvile vastavale väärtusele. Iga võtme- ja väärtuspaar on HashMapi kirje.
Joonis 01: kaardi liides
HaspMapi mõistmiseks eeldage järgmist stsenaariumi. Kui programmeerija soovib sinna salvestada õpilaste nimede ja vastavate indeksinumbrite komplekti, saab ta kasutada HashMapi. Indeksinumbrite leidmiseks kasutatakse õpilaste nimesid. Seetõttu on võtmeteks õpilaste nimed, väärtusteks aga indeksinumbrid.
Joonis 02: Java-d kasutav programm HashMap
Vastav alt ül altoodud programmile luuakse HashMapi objekt. Seejärel saab programmeerija selle objekti abil elemente lisada. Väärtusi saab sisestada put-meetodil. Väärtuste toomiseks peaks programmeerija kasutama võtmega get meetodit. StudentList.get("150") kasutamisel; see prindib sellele registrile vastava nime, milleks on Ann. Kui programmeerija soovib saada kõik väärtused, saab ta kasutada Map. Entry't kõigi võtmete ja väärtuste printimiseks. Väljundit jälgides on näha, et HashMap ei pea kindlat järjekorda. See ei prindi elemente sisestatud järjekorras. Elemendid trükitakse juhuslikus järjekorras.
Mis on TreeMap?
TreeMap on Java klass, mis rakendab kaardi liidest. Sarnaselt HashMapiga kasutatakse seda ka võtme- ja väärtuspaaride salvestamiseks, kuid kasvavas järjekorras. TreeMap rakendab NavigableMapi ja NavigableMap laiendab SortedMapi ja SortedMap laiendab kaarti. Iga element on ainulaadne. TreeMapi deklareerimine on järgmine.
avalik klass TreeMap laiendab AbstractMapi rakendusi NavigableMap, Cloneable, Serialisable
K viitab klahvile, V aga sellele konkreetsele klahvile vastavale väärtusele. Iga võti, väärtuste paar on TreeMapi kirje.
Joonis 03: TreeMap programm Java-vormingus
Vastav alt ül altoodud programmile luuakse TreeMapi objekt. Seejärel saab programmeerija selle objekti abil elemente lisada. Väärtusi saab sisestada put-meetodil. Väärtuste toomiseks peaks programmeerija kasutama võtmega get meetodit. StudentList.get("150") kasutamisel; see prindib sellele registrile vastava nime, milleks on Ann. Kui programmeerija soovib saada kõik väärtused, saab ta kasutada Map. Entry't kõigi võtmete ja väärtuste printimiseks. Väljundit jälgides on näha, et TreeMap hoiab kindlat järjekorda. Elemendid trükitakse kasvavas järjekorras.
Millised on HashMapi ja TreeMapi sarnasused?
- Nii HashMap kui ka TreeMap rakendavad kaardi liidest.
- Nii HashMap kui ka TreeMap suudavad salvestada ja töödelda paljusid elemente.
- Nii HashMap kui ka TreeMap sisaldavad võtme- ja väärtuspaare.
- Nii HashMapil kui ka TreeMapil võib olla palju nullväärtusi.
- Elementide arv, mida saab nii HashMapis kui ka TreeMapis salvestada, ei ole piiratud.
Mis vahe on HashMapil ja TreeMapil?
HashMap vs TreeMap |
|
A HashMap on kaardipõhine kogumisklass, mida kasutatakse võtme- ja väärtusepaaride salvestamiseks, mis ei hoia andmeelementides kindlat järjekorda. | A TreeMap on kaardipõhine koguklass, mida kasutatakse võtme- ja väärtusepaaride salvestamiseks, säilitades andmeelementide kasvavas järjekorras. |
Telli | |
HashMap ei säilita järjekorda. | TreeMap säilitab kasvavas järjekorras. |
Nullklahv | |
HashMap võib sisaldada ühte nullvõtit. | TreeMapil ei saa olla nullvõtit. |
Esitus | |
HashMap on kiirem kui TreeMap. | TreeMap on aeglasem kui HashMap. |
Kokkuvõte – HashMap vs TreeMap
Programmeerimiskeeled, nagu Java, sisaldavad kogumisraamistikku. Massiivides võib olla kindel arv elemente. Seetõttu tuleks massiivi suurus lähtestada alguses. Kogudesse saab programmeerija vastav alt vajadusele salvestada palju elemente. Konkreetset kogust salvestada pole. Kaart on kogumisraamistikku kuuluv liides. HashMap on kaardipõhine kogumisklass, mida kasutatakse võtme- ja väärtusepaaride salvestamiseks, mis ei hoia andmeelementides kindlat järjekorda. TreeMap on kaardipõhine koguklass, mida kasutatakse võtme- ja väärtusepaaride salvestamiseks, mis säilitab andmeelementide kasvavas järjekorras. Selles artiklis käsitleti erinevust HashMapi ja kaardiliidest rakendava TreeMapi vahel. HashMapi ja TreeMapi erinevus seisneb selles, et HashMap ei säilita andmeelementides kindlat järjekorda, samas kui TreeMap säilitab andmeelementide kasvavas järjekorras.