Programmeerimisel on andmete kogumiseks erinevaid mehhanisme. Kogud on üks meetod andmete salvestamiseks. Programmeerimiskeeled, näiteks Java, kasutavad kogusid. See on klasside ja liidestega raamistik andmeelementide kogumi hoidmiseks ja käsitsemiseks. Tavalises massiivis on fikseeritud arv elemente, mida säilitada. See on massiivide piirang. Selle asemel saab programmeerija kasutada kogusid. Selliseid toiminguid nagu sisestamine, kustutamine, sortimine ja otsimine saab teostada kogude abil. Java-s kuulub kaardiliides kogudesse. Kaarti kasutatakse andmete esitamiseks võtme-, väärtusepaarides. Seal on ainult unikaalsed võtmed ja igal neist on vastav väärtus. HashMap ja TreeMap on klassid, mis rakendavad kaardi liidest. HashMap on kaardipõhine kogumiklass, mida kasutatakse võtme- ja väärtuspaaride hoidmiseks, mis ei säilita andmeelementides kindlat järjekorda. TreeMap on kaardipõhine kogumiklass, mida kasutatakse võtme- ja väärtuspaaride hoidmiseks, mis säilitavad andmeelementide kasvavat järjekorda. võtme erinevus HashMapi ja TreeMapi vahel on see HashMap ei säilita andmeelementides kindlat järjekorda, samas kui TreeMap säilitab andmeelementide kasvavat järjekorda.
1. Ülevaade ja peamised erinevused
2. Mis on HashMap
3. Mis on TreeMap
4. HashMapi ja TreeMapi sarnasused
5. Kõrvuti võrdlus - HashMap vs TreeMap tabelina
6. Kokkuvõte
HashMap on klass, mis rakendab kaardiliidest. See laiendab AbstractMap klassi ja rakendab Map liidest. HashMap sisaldab võtme-, väärtuspaare. Iga element on ainulaadne. HashMapis on elementide leidmine klahvi abil lihtne. HashMapi deklareerimine on järgmine.
Avalik klass HashMap laiendab AbstractMap rakendusi Map, Cloneable, Serializable
K tähistab võtit, V aga väärtust, mis vastab sellele konkreetsele võtmele. Iga võtme- ja väärtuspaar on HashMap-i kirje.
Joonis 01: kaardiliides
HaspMapi mõistmiseks eeldage järgmist stsenaariumi. Kui seal soovib programmeerija salvestada õpilaste nimede komplekti ja vastavaid indeksinumbreid, saab ta kasutada HashMap-i. Indeksnumbrite leidmiseks kasutatakse õpilaste nimesid. Seetõttu on võtmeks õpilaste nimed, väärtusteks aga indeksinumbrid.
Joonis 02: HashMap-programm Java abil
Ülaltoodud programmi kohaselt luuakse HashMapi objekt. Siis saab programmeerija selle objekti abil elemente lisada. Väärtusi saab sisestada put-meetodi abil. Väärtuste toomiseks peaks programmeerija kasutama võtmega get-meetodit. StudentList.get (“150”) kasutamisel; see prindib vastava nime sellesse indeksi, milleks on Ann. Kui programmeerija soovib saada kõiki väärtusi, saab ta kõigi võtmete ja väärtuste printimiseks kasutada rakendust Map.Entry. Väljundit jälgides on näha, et HashMap ei pea konkreetset tellimust. See ei prindi elemente sisestatud järjekorras. Elemendid trükitakse juhuslikus järjekorras.
TreeMap on Java klass, mis rakendab Map liidest. Sarnaselt HashMapiga kasutatakse seda ka võtme-, väärtuspaaride, kuid kasvavas järjekorras hoidmiseks. TreeMap rakendab NavigableMap ja NavigableMap laiendab sorteeritud kaarti ja SortedMap laiendab kaarti. Iga element on ainulaadne. Puukaardi deklareerimine on järgmine.
avaliku klassi TreeMap laiendab AbstractMap rakendusi NavigableMap, Cloneable, Serializable
K tähistab võtit, V aga väärtust, mis vastab sellele konkreetsele võtmele. Iga võtme- ja väärtuspaar on TreeMapi kirje.
Joonis 03: TreeMap programm Java abil
Ülaltoodud programmi kohaselt luuakse TreeMapi objekt. Siis saab programmeerija selle objekti abil elemente lisada. Väärtusi saab sisestada put-meetodi abil. Väärtuste toomiseks peaks programmeerija kasutama võtmega get-meetodit. StudentList.get (“150”) kasutamisel; see prindib vastava nime sellesse indeksi, milleks on Ann. Kui programmeerija soovib saada kõiki väärtusi, saab ta kõigi võtmete ja väärtuste printimiseks kasutada rakendust Map.Entry. Väljundit jälgides on näha, et TreeMap säilitab kindla tellimuse. Elemendid trükitakse kasvavas järjekorras.
HashMap vs TreeMap | |
HashMap on kaardipõhine kogumiklass, mida kasutatakse võtme- ja väärtuspaaride hoidmiseks, mis ei säilita andmeelementides kindlat järjekorda. | TreeMap on kaardipõhine kogumiklass, mida kasutatakse võtme- ja väärtuspaaride hoidmiseks ning mis hoiab andmeelementide kasvavat järjestust. |
Telli | |
HashMap ei säilita tellimust. | TreeMap säilitab kasvavat järjekorda. |
Nullvõti | |
HashMap võib sisaldada ühte nullvõtit. | Puukaardil ei saa olla nullvõtit. |
Etendus | |
HashMap on kiirem kui TreeMap. | TreeMap on aeglasem kui HashMap. |
Programmeerimiskeeled, näiteks Java, sisaldavad kogumisraamistikku. Massiivides võib olla kindel arv elemente. Seetõttu tuleks massiivi suurus algusesse sisestada. Kollektsioonides saab programmeerija vastavalt vajadusele salvestada palju elemente. Konkreetset summat, mida säilitada, pole. Kaart on liides, mis kuulub kogumisraamistikku. HashMap on kaardipõhine kogumiklass, mida kasutatakse võtme- ja väärtuspaaride hoidmiseks, mis ei säilita andmeelementides kindlat järjekorda. TreeMap on kaardipõhine kogumiklass, mida kasutatakse võtme- ja väärtuspaaride hoidmiseks ja mis säilitab andmeelementide kasvavat järjekorda. Selles artiklis käsitleti erinevust HashMapi ja MapMiili rakendava TreeMapi vahel. Erinevus HashMapi ja TreeMapi vahel on see, et HashMap ei säilita andmeelementides kindlat järjekorda, samas kui TreeMap säilitab andmeelementide kasvavat järjekorda.
1. “HashMap Java - javatpoint.” Mõte, Saadaval siin
2. “TreeMap Java - javatpoint.” Mõte, Saadaval siin
1.'Java.util.Map hierarhia'By ramlmn - Oma töö, (CC BY-SA 4.0) Commonsi Wikimedia kaudu