Како имплементирати интерфејс мапе у Јави?



Овај чланак о Јава Мап Интефацеу помоћи ће вам да разумете како Мап ради на Јави и упознаће вас са различитим класама које имплементирају Мап Интерфаце

Једна од најзанимљивијих тема на Јави је интерфејс Мап којипредставља мапирање између кључа и вредности.Често се погрешно схвата да је подтип интерфејс у ​​Јави.Овај чланак о Јава Мап Интерфацеу помоћи ће вам да разумете и савладате начин рада мапе .

У наставку су наведене теме обухваћене овим чланком:





Јава Мап Интерфаце

Мапа у Јави је објект који пресликава кључеве у вредности и дизајниран је за брже претраживање. Подаци се чувају у паровима кључ / вредност и сваки кључ је јединствен. Сваки кључ пресликава се на вредност одакле и назив мапе. Ови парови кључ / вредност називају се уносима мапе.

Мапе на Јави - Јава Мап Интерфаце - Едурека



У , јава.утил.Мап је што укључује потписе метода за уметање, уклањање и преузимање елемената заснованих на кључу. Помоћу таквих метода савршен је алат за мапирање асоцијација кључ / вредност, као што су речници.

Карактеристике интерфејса карте

  • Сучеље Мап није прави подтип интерфејса Цоллецтион, стога,његове карактеристике и понашање се разликују од осталих типова колекције.
  • Обезбеђујетри приказа колекције - скуп кључева, скуп мапирања кључ / вредност и колекција вредности.
  • ДОМапане може садржати дупликате кључева и сваки кључ може пресликати на највише једну вредност. Неке имплементације дозвољавају нулл кључ и нулл вредност ( ХасхМап и ЛинкедХасхМап ) али неки не ( ТрееМап).
  • Интерфејс Мап не гарантује редослед мапирања, међутим, то зависи од примене. На пример, ХасхМап не гарантује редослед мапирања, али ТрееМап ради.
  • Класа АбстрацтМап пружа скелетну имплементацију интерфејса Јава Мап и већину конкретног Мап-а класе проширити класу АбстрацтМап и применити потребне методе.

Сада када имате идеју о томе у чему је интерфејс Мап је, хајде да погледамо хијерархију Јава мапе.

Јава хијерархија мапа

Постоје два интерфејса која имплементирају Мап у јави: Мап и СортедМап. А популарне класе примене Мап у Јави су ХасхМап, ТрееМап , и ЛинкедХасхМап. Хијерархија Јава Мапе дата је у наставку:



Пре него што проверимо горе поменуте три класе имплементације Јава Мап Интерфаце-а, ево неколико уобичајених метода на које можете наићи током рада са Мапом.

Методе у Јава Мап Интерфаце-у

Методе

Опис

јавни пут (кључ објекта, вредност објекта)Овом методом се унос уноси на мапу
јавновоид путАлл (мапа мапе)Ова метода убацује наведену мапу у ову мапу
јавни Објецт ремове (Објецт кеи)Користи се за брисање уноса за наведени кључ
јавни Сет кеиСет ()Враћа приказ Сет који садржи све тастере
јавни Постави ентриСет ()Враћа приказ Сет који садржи све кључеве и вредности
воид цлеар ()Користи се за ресетовање мапе
јавна празнина путИфАбсент (кључ К, вредност В)У мапу убацује наведену вредност са наведеним кључем само ако већ није наведена
јавни Објецт гет (Објецт кеи)Враћа вредност за наведени кључ
јавни боолеан цонтаинсКеи (Објецт кеи)
Користи се за претрагу наведеног кључа са ове мапе

Имплементације мапе

Има их неколико који имплементирају Јава Мапали су три главне и опште намене применеХасхМап, ТрееМап и ЛинкедХасхМап.Погледајмо карактеристике и понашања сваке примене на примеру

ХасхМап Цласс

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

пакет МиПацкаге импорт јава.утил. * класа ХасхМапЕкампле {јавна статичка воид главна (Стринг [] аргс) {Мапа курсева = нови ХасхМап () // Додајте неке курсеве. цоурсес.пут ('Јава Цоурсес', нови Интегер (6)) цоурсес.пут ('Цлоуд Цоурсес', нев Интегер (7)) цоурсес.пут ('Курсеви програмирања', нови Интегер (5)) цоурсес.пут (' Курсеви науке о подацима ', нови цели број (2)) Систем.оут.принтлн (' Укупно курсева: '+ курсеви.сизе ()) Сетст = цоурсес.ентриСет () за (Мап.Ентри ме: ст) {Систем.оут.принт (ме.гетКеи () + ':') Систем.оут.принтлн (ме.гетВалуе ())} Систем.оут. принтлн () Стринг сеарцхКеи = 'Јава Курсеви' иф (цоурсес.цонтаинсКеи (сеарцхКеи)) Систем.оут.принтлн ('Укупно пронађено' + цоурсес.гет (сеарцхКеи) + '' + сеарцхКеи)}}

Оутпут

Укупно курсева: 4 курса у облаку: 7 курсева програмирања: 5 курсева науке о подацима: 2 Јава курса: 6 Пронађено укупно 6 Јава курсева

У горе наведеном програму користио сам много метода поменутих у табели. Прво, ставити() метода убацује 4 уноса у мапу, а величина () метода у следећем кораку приказује величину мапе (укупни парови кључ / вредност). Након тога, у следећем кораку, ентриСет () метода враћа све парове кључ / вредност. Програм такође показује како се користи добити() метода за тражење вредности помоћу повезаног кључа.

Пређимо на следећу класу која примењује Јава Мап Интерфаце - ТрееМап.

ТрееМап Цласс

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

пакет МиПацкаге импорт јава.утил. * класа ТрееМапЕк {јавна статичка воид главна (Стринг [] аргс) {Мапа курсева = нова ТрееМап () // Додајте неке курсеве. цоурсес.пут ('Јава Цоурсес', нови Интегер (3)) цоурсес.пут ('АВС Цоурсес', нев Интегер (7)) цоурсес.пут ('Курсеви програмирања', нови Интегер (8)) цоурсес.пут (' Курсеви науке о подацима ', нови цели број (2)) Систем.оут.принтлн (' Укупно курсева: '+ курсеви.сизе ()) Сетст = цоурсес.ентриСет () за (Мап.Ентри ме: ст) {Систем.оут.принт (ме.гетКеи () + ':') Систем.оут.принтлн (ме.гетВалуе ())} Систем.оут. принтлн ()}}

Оутпут

Укупно курсева: 4 АВС курса: 7 курсева науке о подацима: 2 Јава курса: 3 курса програмирања: 8

која је разлика између јавасцрипта и јкуери-а

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

ЛинкедХасхМап Цласс

Као што назив указује, ова имплементација интерфејса Јава Мап користи хеш табелу и повезану листу као основне структуре података. Према томе, редослед ЛинкедХасхМап јепредвидљив, са редоследом уметања као подразумеваним редоследом. Такође, дозвољава нуле као у ХасхМап-у. Ево примера програма који демонстрира класу ТрееМап.

пакет МиПацкаге импорт јава.утил. * јавна класа ЛинкедХасхМапЕкампле {публиц статиц воид маин (Стринг а []) {ЛинкедХасхМап цоурсес = нев ЛинкедХасхМап () цоурсес.пут ('Јава Цоурсес', нев Интегер (3)) цоурсес.пут (' Цлоуд Цоурсес ', нови Интегер (7)) цоурсес.пут (' Курсеви програмирања ', нови Интегер (8)) цоурсес.пут (' Курсеви науке о подацима ', нови Интегер (2)) // Елементе штампа у истом редоследу // онако како су уметнути Систем.оут.принтлн (курсеви) Систем.оут.принтлн ('Укупно курсева:' + курсеви.сизе ()) Систем.оут.принтлн ('Садржи кључ' Хадооп '?' + цоурсес.цонтаинсКеи ('Хадооп')) Систем.оут.принтлн ('Добијање вредности за кључ' Курсеви програмирања ':' + цоурсес.гет ('Курсеви програмирања')) Систем.оут.принтлн ('Је ли карта празна?' + Цоурсес.исЕмпти ()) Систем.оут.принтлн ('обрисати елемент' Цлоуд Цоурсес ':' + цоурсес.ремове ('Цлоуд Цоурсес')) Систем.оут.принтлн (курсеви)}}

Оутпут

{Јава Курсеви = 3, Цлоуд Курсеви = 7, Програмирање = 8, Дата Сциенце Курсеви = 2} Укупно курсева: 4 Садржи кључ „Хадооп“? фалсе Добијање вредности за кључ 'Курсеви програмирања': 8 Да ли је карта празна? фалсе делете елемент 'Цлоуд Цоурсес': 7 {Јава Цоурсес = 3, Программинг Цоурсес = 8, Дата Сциенце Цоурсес = 2}

Пример програма је прилично једноставан за разумевање. Користио сам неке основне методе за демонстрацију функционисања ЛинкеХасхМап у Јави. Као што сам раније рекао, осим ове три, постоји и мноштво других класа које имплементирају интерфејс Јава Мап.

Ово нас доводи до краја овог чланка „Јава Мап Интерфаце“. Обрадио сам једну од занимљивих тема Јаве, а то је Мап интерфаце у Јави.

Обавезно вежбајте што је више могуће и вратите своје искуство.

Погледајте Едурека, поуздана компанија за учење на мрежи са мрежом од више од 250.000 задовољних ученика раширених широм света. Овде смо да вам помогнемо у сваком кораку на вашем путовању, јер поред тога што постављате питања о јава интервјуу, осмислили смо наставни план и програм који је дизајниран за студенте и професионалце који желе да буду Јава програмери.

Имате питање за нас? Молимо вас да га наведете у одељку за коментаре овог „интерфејса јава мапе“ чланак и јавићемо вам се у најкраћем могућем року.