Skirtumas tarp „HashMap“ ir „TreeMap“ „Java“

Autorius: Laura McKinney
Kūrybos Data: 2 Balandis 2021
Atnaujinimo Data: 14 Gegužė 2024
Anonim
Review: Quiz 0
Video.: Review: Quiz 0

Turinys


„HashMap“ ir „TreeMap“ yra žemėlapio klasės ir jos įgyvendina žemėlapio sąsają. Žemėlapis yra objektas, kuriame saugomos raktų ir reikšmių poros, kuriose kiekvienas raktas yra unikalus, tačiau gali būti ir dubliuotų verčių. „HashMap“ klasė naudoja maišos lentelę kaip duomenų struktūrą. „TreeMap“ kaip duomenų struktūrą naudoja raudonai juodą medį. Pagrindinis skirtumas tarp HashMap ir Treemap yra tas, kad „HashMap“ neišsaugo įterpimo tvarkos, o Medžių žemėlapis daro.

Taigi pradėkime diskusiją apie „HashMap“ ir „TreeMap“ skirtumus naudodamiesi žemiau pateikta palyginimo lentele.

  1. Palyginimo diagrama
  2. Apibrėžimas
  3. Pagrindiniai skirtumai
  4. Išvada

Palyginimo diagrama

Palyginimo pagrindas„HashMap“„TreeMap“
Pagrindinis „HashMap“ nepalaiko įterpimo tvarkos.„TreeMap“ palaiko įterpimo tvarką.
Duomenų struktūra„HashMap“ naudoja pagrindinę duomenų struktūrą „Hash Table“.„TreeMap“ naudoja pagrindinę duomenų struktūrą raudonai juodą medį.
Null raktai ir vertybės „HashMap“ leidžia „Null“ klavišą vieną kartą paversti „Null“ reikšme bet kurį laiką.„TreeMap“ neleidžia naudoti „Null“ rakto, tačiau leidžia „Null“ reikšmėms naudoti bet kurį laiką.
Pratęsia ir įgyvendina„HashMap“ praplečia „AbstractMap“ klasę ir įgyvendina žemėlapio sąsają.„TreeMap“ praplečia „AbstractMap“ klasę ir įgyvendina „SortedMap“ ir „NavigableMap“ sąsają.
Spektaklis„HashMap“ veikia greičiau.„TreeMap“, palyginti su „HashMap“, veikia lėčiau.


Apibrėžimas HashMap

„HashMap“ yra žemėlapio klasė. Jis naudoja maišos stalas, kaip duomenų struktūrą žemėlapių raktų reikšmių porai saugoti. Pagrindinių verčių poros įterpimas atliekamas naudojant maišos kodasraktai. Taigi kiekvienas žemėlapio klavišas turi būti unikalus, nes jis bus naudojamas reikšmėms nuskaityti.

Įterpimo tvarka „HashMap“ yra ne išsaugota, o tai reiškia, kad hasmapo objektas negrąžina elementų tokia tvarka, kokia jie buvo įterpti. Kita vertus, elementų grąžinimo tvarka nėra nustatyta.

Raktas leidžiama būti NULL iš karto, bet vertybes gali būti NULL bet kuriuo metu. „HashMap“ gali būti nevienalytis raktų objektai, taip pat reikšmės.

Yra keturi „HashMap“ konstruktoriai:

„HashMap“ () „HashMap“ (žemėlapio m) „HashMap“ (vidinė talpa), „HashMap“ (vidinė talpa, „float fillRatio“)

Pirmas konstruktorius sukuria tuščią „HashMap“ objektą. antra konstruktorius inicijuoja „HashMap“ naudodamas žemėlapio m elementus. trečias konstruktorius inicijuoja „HashMap“ naudodamas argumentą. ketvirta konstruktorius inicijuoja „HashMap“ objekto talpą ir užpildymo santykį.


Numatytasis talpa iš „HashMap“ yra 16, ir numatytasis užpildymo santykis iš „HashMap“ yra 0.75.

„TreeMap“ apibrėžimas

Kaip „HashMap“, „TreeMap“ taip pat yra „Map“ klasė. „TreeMap“ tęsiasi AnotacijaMap klasė ir padargai „NavigabelMap“ ir Rūšiuotas žemėlapis. „TreeMap“ objektai išsaugo žemėlapio elementus medžio struktūroje. Žemėlapiui saugoti naudojama duomenų struktūra Raudonai juodas medis.

„TreeMap“ raktų reikšmių porą saugo surūšiuota tvarka, kuri padeda greitai atkurti elementus. Objektas „TreeMap“ grąžina elementus rūšiuojami (kylant) įsakymas.

Yra keturi „TreeMap“ konstruktoriai:

„TreeMap“ („TreeMap“ (Palygintuvas <? Super K> comp) „TreeMap“ (žemėlapis <? Tęsiasi K,? Tęsiasi V> m) „TreeMap“ („SortedMap“) sm)

Pirmas konstruktoriai sukuria tuščią „TreeMap“ objektą, kuris būtų rūšiuojamas natūralia tvarka, jo raktai. antra konstruktorius sukurs tuščią medžio žemėlapį, kurį rūšiuos Komparatoriaus cmp. trečias aukščiau esantis konstruktorius sukurs medžio schemą, kuri bus inicijuota naudojant Žemėlapis m. ketvirta konstruktorius sukurs medžio schemą, kuri bus inicializuota naudojant Rūšiuotas žemėlapis sm.

Medžių schema neturi jokio naujo metodo, ji naudoja „NavigableMap“ ir „SortedMap“ sąsajų bei „AbstractMap“ klasės sąsajų metodą.

  1. Abi klasės yra naudojamos kuriant žemėlapio objektus, tačiau pagrindinis skirtumas tarp „HashMap“ ir „Treemap“ yra tas, kad „HashMap“ neišlaiko įterpimo tvarkos, o „medžio žemėlapis“ tai daro.
  2. Duomenų struktūra, kurią „Hashmap“ naudoja žemėlapio elementams saugoti, yra maišos lentelė, o duomenų struktūra, kurią „TreeMap“ naudoja žemėlapio elementams saugoti, yra raudonai juodas medis.
  3. Tiek klasės „Hashmap“, tiek „Treemap“ išplečia „AbstractMap“ klasę, tačiau „HashMap“ klasė įgyvendina žemėlapio sąsają, o „TreeMap“ - „NavigableMap“ ir „SortedMap“ sąsają.
  4. Reikšmės gali būti Null bet kurį laiką tiek, bet raktas „HashMap“ leidžiamas būti NULL tik vieną kartą, o raktas niekada negali būti „Treemap“.
  5. „HashMap“ našumas yra greitesnis, todėl nereikia gaišti laiko rūšiuoti žemėlapio elementus, kaip tai daro „TreeMap“. Taigi „TreeMap“ veikia lėčiau nei „HashMap“.

Išvada:

„TreeMap“ turėtų būti naudojamas tik tada, kai jums reikia raktų vertės poros išrūšiuota forma. Kadangi rūšiavimas apima vykdymo kainą. Nesinchronizuotas „HashMap“ veikia greičiau.