Pagrindinis skirtumas – HashMap vs TreeMap
Programuojant yra įvairių duomenų rinkimo mechanizmų. Kolekcijos yra vienas iš duomenų saugojimo būdų. Programavimo kalbos, tokios kaip Java, naudoja kolekcijas. Tai sistema su klasėmis ir sąsajomis, skirta duomenų elementų rinkiniui saugoti ir manipuliuoti. Įprastame masyve saugomas fiksuotas elementų skaičius. Tai yra masyvų apribojimas. Vietoj to programuotojas gali naudoti kolekcijas. Tokios operacijos kaip įterpimas, trynimas, rūšiavimas ir paieška gali būti atliekamos naudojant rinkinius. Java, žemėlapio sąsaja priklauso kolekcijoms. Žemėlapis naudojamas duomenims pateikti rakto, reikšmių porose. Yra tik unikalūs raktai ir kiekvienas turi atitinkamą reikšmę. HashMap ir TreeMap yra klasės, įgyvendinančios žemėlapio sąsają. HashMap yra žemėlapiu pagrįsta rinkimo klasė, kuri naudojama raktų ir reikšmių poroms, kurios nepalaiko konkrečios duomenų elementų tvarkos, saugoti. „TreeMap“yra žemėlapiu pagrįsta rinkimo klasė, naudojama raktų ir reikšmių poroms saugoti, išlaikančioms didėjančią duomenų elementų tvarką. Pagrindinis skirtumas tarp „HashMap“ir „TreeMap“yra tas, kad „HashMap“nepalaiko konkrečios duomenų elementų tvarkos, o „TreeMap“– didėjančia duomenų elementų tvarka.
Kas yra HashMap?
HashMap yra klasė, kuri įgyvendina žemėlapio sąsają. Tai išplečia AbstractMap klasę ir įgyvendina žemėlapio sąsają. HashMap yra raktų, reikšmių poros. Kiekvienas elementas yra unikalus. „HashMap“elementus lengva rasti naudojant klavišą. „HashMap“deklaravimas yra toks.
viešoji klasė „HashMap“išplečia „AbstractMap“įgyvendina žemėlapį, klonuojamą, serializuojamą
K nurodo raktą, o V – reikšmę, atitinkančią tą konkretų klavišą. Kiekviena raktų, reikšmių pora yra HashMap įrašas.
01 pav.: žemėlapio sąsaja
Kad suprastumėte HaspMap, įsivaizduokite tokį scenarijų. Jei programuotojas nori išsaugoti mokinių vardų ir atitinkamų indeksų numerių rinkinį, jis gali naudoti HashMap. Studentų vardai naudojami indekso numeriams rasti. Todėl mokinių vardai yra raktai, o indekso skaičiai yra reikšmės.
02 pav. HashMap programa naudojant Java
Pagal aukščiau pateiktą programą sukuriamas HashMap objektas. Tada programuotojas gali pridėti elementus naudodamas tą objektą. Vertes galima įterpti naudojant put metodą. Norėdami gauti reikšmes, programuotojas turėtų naudoti metodą gauti su raktu. Kai naudojate studentList.get("150"); bus išspausdintas atitinkamas indekso pavadinimas, kuris yra Ann. Jei programuotojas nori gauti visas reikšmes, jis gali naudoti Map. Entry, kad atspausdintų visus raktus ir reikšmes. Stebint išvestį matyti, kad HashMap nepalaiko konkrečios tvarkos. Ji nespausdina elementų įterpta tvarka. Elementai spausdinami atsitiktine tvarka.
Kas yra TreeMap?
The TreeMap yra Java klasė, kuri įgyvendina žemėlapio sąsają. Panašiai kaip „HashMap“, jis taip pat naudojamas raktų, reikšmių poroms saugoti, bet didėjančia tvarka. „TreeMap“įgyvendina „NavigableMap“, o „NavigableMap“išplečia „SortedMap“, o „SortedMap“išplečia žemėlapį. Kiekvienas elementas yra unikalus. „TreeMap“deklaravimas yra toks.
viešoji klasė TreeMap išplečia AbstractMap įgyvendina NavigableMap, Cloneable, Serializable
K nurodo raktą, o V – reikšmę, atitinkančią tą konkretų klavišą. Kiekviena raktų, reikšmių pora yra „TreeMap“įrašas.
03 pav. TreeMap programa naudojant Java
Pagal aukščiau pateiktą programą sukuriamas TreeMap objektas. Tada programuotojas gali pridėti elementus naudodamas tą objektą. Vertes galima įterpti naudojant put metodą. Norėdami gauti reikšmes, programuotojas turėtų naudoti metodą gauti su raktu. Kai naudojate studentList.get("150"); bus išspausdintas atitinkamas indekso pavadinimas, kuris yra Ann. Jei programuotojas nori gauti visas reikšmes, jis gali naudoti Map. Entry, kad atspausdintų visus raktus ir reikšmes. Stebint išvestį, matyti, kad TreeMap palaiko tam tikrą tvarką. Elementai spausdinami didėjančia tvarka.
Kokie yra HashMap ir TreeMap panašumai?
- Tiek HashMap, tiek TreeMap įgyvendina žemėlapio sąsają.
- Tiek HashMap, tiek TreeMap gali saugoti ir valdyti daug elementų.
- Tiek HashMap, tiek TreeMap yra raktų, reikšmių poros.
- Tiek HashMap, tiek TreeMap gali turėti daug nulinių reikšmių.
- Elementų, kuriuos galima saugoti „HashMap“ir „TreeMap“, skaičius neribojamas.
Kuo skiriasi HashMap ir TreeMap?
HashMap vs TreeMap |
|
A HashMap yra žemėlapiu pagrįsta rinkimo klasė, kuri naudojama raktų ir reikšmių poroms, kurios nepalaiko konkrečios duomenų elementų tvarkos, saugoti. | A TreeMap yra žemėlapiu pagrįsta rinkimo klasė, naudojama raktų ir reikšmių poroms saugoti, kuri palaiko duomenų elementų didėjimo tvarką. |
Užsakyti | |
HashMap nepalaiko tvarkos. | Medžio žemėlapis išlaiko didėjančią tvarką. |
Nulio klavišas | |
HashMap gali turėti vieną nulinį raktą. | Medžio žemėlapis negali turėti nulinio rakto. |
Atlikimas | |
HashMap yra greitesnis nei TreeMap. | TreeMap yra lėtesnis nei HashMap. |
Santrauka – HashMap vs TreeMap
Programavimo kalbose, pvz., „Java“, yra rinkinio sistema. Masyvuose gali būti fiksuotas elementų skaičius. Todėl masyvo dydis turėtų būti inicijuotas pradžioje. Kolekcijose programuotojas gali saugoti daug elementų pagal poreikį. Konkrečios saugomos sumos nėra. Žemėlapis yra sąsaja, priklausanti kolekcijos sistemai. HashMap yra žemėlapiu pagrįsta rinkimo klasė, naudojama raktų ir reikšmių poroms, kurios nepalaiko konkrečios duomenų elementų tvarkos, saugoti. „TreeMap“yra žemėlapiu pagrįsta rinkimo klasė, naudojama raktų ir reikšmių poroms saugoti, kuri palaiko duomenų elementų didėjimo tvarką. Šiame straipsnyje aptariamas skirtumas tarp HashMap ir TreeMap, kuris įgyvendina žemėlapio sąsają. Skirtumas tarp „HashMap“ir „TreeMap“yra tas, kad „HashMap“nepalaiko konkrečios duomenų elementų tvarkos, o „TreeMap“– didėjančia duomenų elementų tvarka.