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

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

Садржај


ХасхМап и ТрееМап су класе Мап и оба имплементирају Мап интерфејс. Мапа је објект који чува парове кључ-вредност, где је сваки кључ јединствен, али могу постојати дупликате вредности. ХасхМап класа користи хасх табелу као структуру података. ТрееМап користи црвено-црно стабло као структуру података. Главна разлика између ХасхМап-а и Треемап-а је та ХасхМап не чува редослед уметања док, Треемап заиста.

Па започнимо нашу дискусију о разликама између ХасхМап-а и ТрееМап-а уз помоћ упоредног графикона приказаног доле.

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

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

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


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

ХасхМап је класа Мап. Користи хасх табле, као структура података за смештање пара вредности кључа мапе. Уметање пара кључ-вредност врши се коришћењем хасх код од тастери. Дакле, сваки кључ на мапи мора бити јединствен јер ће се користити за дохваћање вриједности.

Редослед уметања у ХасхМап је не сачувано, што значи да објект хасхмап не враћа елементе у редоследу у који су убачени. С друге стране, редослед враћања елемената није фиксиран.

Тхе кључ је дозвољено да буде НУЛА одједном, али оно вредности може бити НУЛА у било којем тренутку. ХасхМап може да садржи хетерогена објекти за кључеве као и вредности.

Постоје четири конструктора ХасхМап-а:

ХасхМап () ХасхМап (Мап м) ХасхМап (инт капацитет), ХасхМап (инт капацитет, флоат филлРатио)

Тхе први конструктор ствара празан објект ХасхМап-а. Тхе друго конструктор иницијализира ХасхМап користећи елементе Мап м. Тхе треће конструктор иницијализира ХасхМап са капацитетом наведеним у аргументу. Тхе четврто конструктор иницијализира капацитет као и омјер испуњавања ХасхМап објекта.


Подразумевано капацитет ХасхМап-а је 16, и подразумевано омјер пуњења ХасхМап-а је 0.75.

Дефиниција ТрееМап-а

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

ТрееМап чува пар вредности кључа у поређеном редоследу што помаже у брзом проналажењу елемената. Објект ТрееМап враћа елементе у сортирано (узлазни) наручити.

Постоје четири конструктора ТрееМап-а:

ТрееМап () ТрееМап (компаратор <? Супер К> цомп) ТрееМап (Мап <? Проширује К,? Проширује В> м) ТрееМап (СортедМап см)

Тхе први конструктори креирају празан објект ТрееМап-а који би га природним редоследом сортирали. Тхе друго конструктор ће креирати празну мапу стабала коју ће разврстати по Цомпаратор цмп. Тхе треће Конструктор горе ће створити мапу карте која ће се иницијализирати помоћу уноса Мапа м. Тхе четврто конструктор ће створити мапу карте која ће се иницијализирати помоћу уноса СортедМап см.

Треемап нема своју нову методу, користи метод интерфејса НавигаблеМап и СортедМап и класу АбстрацтМап.

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

Закључак:

ТрееМап треба користити само када вам је потребан пар кључева у сортираном облику. Како сортирање укључује трошкове перформанси. Будући да је ХасхМап несинхронизован, ради брже.