Разлика између ХасхМап-а и ЛинкедХасхМап-а на Јави

Аутор: Laura McKinney
Датум Стварања: 2 Април 2021
Ажурирати Датум: 5 Може 2024
Anonim
Разлика између ХасхМап-а и ЛинкедХасхМап-а на Јави - Технологија
Разлика између ХасхМап-а и ЛинкедХасхМап-а на Јави - Технологија

Садржај


ХасхМап и ЛинкедХасхМап су класе, прилично сличне једна другој и користе се за креирање мапе. ХасхМап класа проширује класу АбстрацтМап да користи хасх табелу за смештање елемената у мапи. ЛинкедХасхМап класа одржава уносе у мапи на основу њиховог редоследа уметања. Значајка која разликује ХасхМап и ЛинкедХасхМап један од другог је то Хасхмап не одржава редослед сачуваних уноса на мапи. С друге стране, ЛинкедХасхМап користи хибридну структуру података да одржава редослед уноса у који су убачени. У упоредном графикону испод истражио сам неке друге разлике између ХасхМап-а и ЛинкедХасхМап-а само погледајте.

  1. Упоредни графикон
  2. Дефиниција
  3. Кључне разлике
  4. Закључак

Упоредни графикон

Основе за упоређивањеХасхМапЛинкедХасхМап
ОсновниРедослед уметања у ХасхМап није сачуван.Редослед уметања је сачуван у ЛинкедХасхМап-у.
Структура податакаХасхМап користи ХасхТабле за складиштење карата.ЛинкедХасхМап користи ХасхТабле заједно са повезаном листом за складиштење мапа.
Проширења / имплементацијеХасхМап проширује АбстрацтМап и имплементира Мап интерфејс.ЛинкедХасхМап проширује Хасхмап.
ВерзијаХасхМап је представљен у ЈДК 2.0.ЛинкедХасхМап је представљен у ЈДК 4.0.
ОверхеадРелативно мање режијских трошкова.Упоредно више, јер мора да одржава редослед уноса на мапи.


Дефиниција ХасхМап-а

ХасхМап је класа која се користи за креирање мапе. Проводи Мапа Интерфејс. Такође проширује АбстрацтМап класе тако да може користити таблицу хасх-а за спремање уноса у мапи. Уноси на мапи су пар код којих је сваки кључ повезан са вредностом. Кључ уноса користи се за проналажење вредности, стога кључ мора бити јединствен. Због тога дупликатни кључеви нису дозвољени у ХасхМап-у. Али кључ у сваком уносу мапе може имати различиту врсту, тј. Кључеви на мапи коју је створио ХасхМап могу бити хетерогени. Структура података коју ХасхМап користи за складиштење мапе је таблица хасх-а.

Редослијед уноса уноса у ХасхМап није сачуван. Уметање уноса у мапу креирану помоћу ХасхМап-а заснива се на хасх коду израчунатој кључевима уноса. Ако сте грешком унијели дупликат кључа у ХасхМап, он ће заменити претходну вредност тог кључа новом предложеном вредношћу и вратиће стару вредност. Ако се не користи дупликат кључа и није извршена замена, кључ увек враћа Нулл. Погледајмо како додати уносе на хасх мапи са следећим примером.


Хасхмап хм = нови Хасхмап (); хм.пут ("Ајаи", 275); хм.пут ("Вијаи", 250); хм.пут ("Јонни", 150); хм.пут ("Јордан", 200); Систем.оут.лн (хм); / * излаз * / {Вијаи = 250, Јонни = 150, Ајаи = 275, Јордан = 200}

Као и у горњем коду, можете видети да сам створио објект ХасхМап-а и додао уносе помоћу методе пут, а кад сам уредио ХасхМап објект, уноси се не уређују редом у који су убачени. Дакле, не можете се претварати да ће се редослед уноса у ХасхМап-у вратити. ХасхМап користи све методе Мап интерфејса и класе АбстрацтМап и не уводи ниједну нову методу; има своје конструкторе. Задани капацитет хасх мапе је 16 а подразумевани омјер пуњења је 0.75.

Дефиниција ЛинкедХасхМап-а

ЛинкедХасхМап је такође класна употреба за креирање мапе. ЛинкедХасхМап проширује ХасхМап класе и касније је представљен ХасхМап-у у ЈДК верзији 4.0. Бити дечја класа ХасхМап класе ЛинкедХасхМап потпуно је исто као и ХасхМап класа, укључујући конструкторе и методе. Али, ЛинкедХасхМап се разликује у смислу да одржава редослед уметања уноса у мапу. Структура података коју ЛинкедХасхМап користи за складиштење мапе је повезана листа и хасх табле.

Поред метода које је наследио ХасхМап, ЛинкедХасхМап уводи једну нову методу која је ремовеЕлдестЕнтри (). Ова метода се користи за уклањање најстаријег уноса на мапи. Задани капацитет ЛинкедХасхМап-а је 16, а подразумевани омјер пуњења 0,75, што је такође слично ХасхМап класи.

  1. Најважнија разлика је што је редослед уметања ХасхМап-а није сачувано док је редослед уметања ЛинкедХасхМап-а очуван.
  2. Структура података коју ХасхМап користи за чување елемената карте је Хасхтабле. Са друге стране, структура података коју користи ЛинкедХасхМап јесте Повезана листа и Хасхтабле.
  3. ХасхМап класа се проширује АбстрацтМап класе и реализује Мапа интерфејс. Међутим, класа ЛинкедХасхМап је дечија класа ХасхМап класа, тј. класа ЛинкедХасхМап проширује класу ХасхМап.
  4. ХасхМап класа је уведена у ЈДК 2.0 верзија. Класа ЛинкедХасхМап представљена је касније у ЈДК 4.0 верзија.
  5. Упоредно комбинована класа ЛинкедХасхМап има више режијских трошкова него ХасхМап јер мора одржавати редослед елемената уметаних у мапу.

Закључак:

ЛинкедХасхМап морамо користити само тамо где нас брине редослед елемената који су убачени у мапу.