Рецоммендед, 2024

Избор Уредника

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

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

Цомпарисон Цхарт

Основа за поређењеХасхМапЛинкедХасхМап
БасицРедослед уметања у ХасхМап није сачуван.Редослед уметања је сачуван у ЛинкедХасхМап.
Структура податакаХасхМап користи ХасхТабле за складиштење мапа.ЛинкедХасхМап користи ХасхТабле заједно са повезаном листом за складиштење мапе.
Ектендс / ИмплементсХасхМап проширује АбстрацтМап и имплементира Мап интерфејс.ЛинкедХасхМап проширује Хасхмап.
ВерсионХасхМап је уведен у ЈДК 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. Компаративно ЛинкедХасхМап класа има више оптерећења од ХасхМап-а јер мора одржавати редослијед елемената уметнутих у мапу.

Закључак:

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

Top