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