Разлика између ХасхМап-а и ЛинкедХасхМап-а на Јави
Садржај
ХасхМап и ЛинкедХасхМап су класе, прилично сличне једна другој и користе се за креирање мапе. ХасхМап класа проширује класу АбстрацтМап да користи хасх табелу за смештање елемената у мапи. ЛинкедХасхМап класа одржава уносе у мапи на основу њиховог редоследа уметања. Значајка која разликује ХасхМап и ЛинкедХасхМап један од другог је то Хасхмап не одржава редослед сачуваних уноса на мапи. С друге стране, ЛинкедХасхМап користи хибридну структуру података да одржава редослед уноса у који су убачени. У упоредном графикону испод истражио сам неке друге разлике између ХасхМап-а и ЛинкедХасхМап-а само погледајте.
- Упоредни графикон
- Дефиниција
- Кључне разлике
- Закључак
Упоредни графикон
Основе за упоређивање | ХасхМап | ЛинкедХасхМап |
---|---|---|
Основни | Редослед уметања у ХасхМап није сачуван. | Редослед уметања је сачуван у ЛинкедХасхМап-у. |
Структура података | ХасхМап користи ХасхТабле за складиштење карата. | ЛинкедХасхМап користи ХасхТабле заједно са повезаном листом за складиштење мапа. |
Проширења / имплементације | ХасхМап проширује АбстрацтМап и имплементира Мап интерфејс. | ЛинкедХасхМап проширује Хасхмап. |
Верзија | ХасхМап је представљен у ЈДК 2.0. | ЛинкедХасхМап је представљен у ЈДК 4.0. |
Оверхеад | Релативно мање режијских трошкова. | Упоредно више, јер мора да одржава редослед уноса на мапи. |
Дефиниција ХасхМап-а
ХасхМап је класа која се користи за креирање мапе. Проводи Мапа Интерфејс. Такође проширује АбстрацтМап класе тако да може користити таблицу хасх-а за спремање уноса у мапи. Уноси на мапи су Редослијед уноса уноса у ХасхМап није сачуван. Уметање уноса у мапу креирану помоћу ХасхМап-а заснива се на хасх коду израчунатој кључевима уноса. Ако сте грешком унијели дупликат кључа у ХасхМап, он ће заменити претходну вредност тог кључа новом предложеном вредношћу и вратиће стару вредност. Ако се не користи дупликат кључа и није извршена замена, кључ увек враћа Нулл. Погледајмо како додати уносе на хасх мапи са следећим примером. Хасхмап хм = нови Хасхмап (); хм.пут ("Ајаи", 275); хм.пут ("Вијаи", 250); хм.пут ("Јонни", 150); хм.пут ("Јордан", 200); Систем.оут.лн (хм); / * излаз * / {Вијаи = 250, Јонни = 150, Ајаи = 275, Јордан = 200} Као и у горњем коду, можете видети да сам створио објект ХасхМап-а и додао уносе помоћу методе пут, а кад сам уредио ХасхМап објект, уноси се не уређују редом у који су убачени. Дакле, не можете се претварати да ће се редослед уноса у ХасхМап-у вратити. ХасхМап користи све методе Мап интерфејса и класе АбстрацтМап и не уводи ниједну нову методу; има своје конструкторе. Задани капацитет хасх мапе је 16 а подразумевани омјер пуњења је 0.75. ЛинкедХасхМап је такође класна употреба за креирање мапе. ЛинкедХасхМап проширује ХасхМап класе и касније је представљен ХасхМап-у у ЈДК верзији 4.0. Бити дечја класа ХасхМап класе ЛинкедХасхМап потпуно је исто као и ХасхМап класа, укључујући конструкторе и методе. Али, ЛинкедХасхМап се разликује у смислу да одржава редослед уметања уноса у мапу. Структура података коју ЛинкедХасхМап користи за складиштење мапе је повезана листа и хасх табле. Поред метода које је наследио ХасхМап, ЛинкедХасхМап уводи једну нову методу која је ремовеЕлдестЕнтри (). Ова метода се користи за уклањање најстаријег уноса на мапи. Задани капацитет ЛинкедХасхМап-а је 16, а подразумевани омјер пуњења 0,75, што је такође слично ХасхМап класи.
Дефиниција ЛинкедХасхМап-а
- Најважнија разлика је што је редослед уметања ХасхМап-а није сачувано док је редослед уметања ЛинкедХасхМап-а очуван.
- Структура података коју ХасхМап користи за чување елемената карте је Хасхтабле. Са друге стране, структура података коју користи ЛинкедХасхМап јесте Повезана листа и Хасхтабле.
- ХасхМап класа се проширује АбстрацтМап класе и реализује Мапа интерфејс. Међутим, класа ЛинкедХасхМап је дечија класа ХасхМап класа, тј. класа ЛинкедХасхМап проширује класу ХасхМап.
- ХасхМап класа је уведена у ЈДК 2.0 верзија. Класа ЛинкедХасхМап представљена је касније у ЈДК 4.0 верзија.
- Упоредно комбинована класа ЛинкедХасхМап има више режијских трошкова него ХасхМап јер мора одржавати редослед елемената уметаних у мапу.
Закључак:
ЛинкедХасхМап морамо користити само тамо где нас брине редослед елемената који су убачени у мапу.