More Related Content
PPT
19 Algorithms and complexity ODP
Catch-me if you can - TOR tricks for bots, shells and general hacking PPT
PPT
Epoch, definitions of terrorism PPT
PPT
Creating the Startup The Accounting Panorama PPT
PPT
Independent sample_t-test What's hot
PDF
Www.cpafap.embrapa.br aquicultura download_tanques_danielmontagner PPT
PPT
21 High-quality programming code construction part-ii PPT
The Digestive System Powerpoint PPT
PPT
Implementation of panic alert mechanism for critical imaging findings(practi... PPT
Avaliacao de investimentos PPT
Anatomiadelaparatoreproductorfemenino PPT
Infective endocarditis case presentation by dr imtiaz PPT
PPT
PPT
Ra lecture - muscles of the face PPT
PPT
PPT
DOCX
PPT
Criminalistics questionnaires PPT
Chest X-ray for the undergraduate PPT
PPT
Business plan presentation_format Viewers also liked
PPT
PPT
00 Fundamentals of csharp course introduction PPT
20 Object-oriented programming principles PPTX
PPTX
PPTX
Everything You know about CSS is Wrong PDF
PPT
22 Methodology of problem solving PPTX
Creating a CSS layout from scratch PPT
PPTX
PPTX
PPT
05 Conditional statements PPT
PPT
PPT
03 Operators and expressions PPT
PPT
01 Introduction to programming PPT
11 Using classes and objects PPT
13 Strings and text processing Similar to 18 Hash tables and sets
PPT
Le Black's Law Dictionary, monument de la lexicographie juridique - ATA 2010 PPT
Data Structures- Part8 stacks and queues PPT
PPT
Indian Financial System Notes MBA PPT PPT
CS201- Introduction to Programming- Lecture 10 PPT
#7 dysbiosis and leaky gut syndrome PPT
PPT
PPT
PPT
Wattle Grove Primary School - Year 7 Kalgoorlie Camp 2014 PPT
PPT
The forensic investigation of aircraft accidents PPT
PPT
PDF
ODP
PPT
PPS
PPT
PPT
More from maznabili
PPT
21 high-quality programming code construction part-i PPT
PPT
16 Linear data structures PPT
PPT
PPT
PPT
PPT
02 Primitive data types and variables 18 Hash tables and sets
- 1.
HHaasshh TTaabblleess aannddSSeettss
DDiiccttiioonnaarriieess,, HHaasshh TTaabblleess,, CCoolllliissiioonnss RReessoolluuttiioonn,, SSeettss
SSvveettlliinn NNaakkoovv
TTeelleerriikk CCoorrppoorraattiioonn
wwwwww..tteelleerriikk..ccoomm
- 2.
TTaabbllee ooff CCoonntteennttss
11.. DDiiccttiioonnaarriieess
22.. HHaasshh TTaabblleess
33.. DDiiccttiioonnaarryy<<TTKKeeyy,, TTVVaalluuee>> CCllaassss
44.. SSeettss
2
- 3.
- 4.
TThhee DDiiccttiioonnaarryy ((MMaapp))AADDTT
TThhee aabbssttrraacctt ddaattaa ttyyppee ((AADDTT)) ""ddiiccttiioonnaarryy"" mmaappss
kkeeyy ttoo vvaalluueess
AAllssoo kknnoowwnn aass ""mmaapp"" oorr ""aassssoocciiaattiivvee aarrrraayy""
CCoonnttaaiinnss aa sseett ooff ((kkeeyy,, vvaalluuee)) ppaaiirrss
DDiiccttiioonnaarryy AADDTT ooppeerraattiioonnss::
AAdddd((kkeeyy,, vvaalluuee))
FFiinnddBByyKKeeyy((kkeeyy)) vvaalluuee
DDeelleettee((kkeeyy))
CCaann bbee iimmpplleemmeenntteedd iinn sseevveerraall wwaayyss
LLiisstt,, aarrrraayy,, hhaasshh ttaabbllee,, bbaallaanncceedd ttrreeee,, ......
4
- 5.
AADDTT DDiiccttiioonnaarryy ––EExxaammppllee
EExxaammppllee ddiiccttiioonnaarryy::
5
KKeeyy VVaalluuee
CC## Modern object-oriented programming
llaanngguuaaggee ffoorr tthhee MMiiccrroossoofftt ..NNEETT ppllaattffoorrmm
CCLLRR
CCoommmmoonn LLaanngguuaaggee RRuunnttiimmee –– eexxeeccuuttiioonn
eennggiinnee ffoorr ..NNEETT aasssseemmbblliieess,, iinntteeggrraall ppaarrtt
ooff ..NNEETT FFrraammeewwoorrkk
ccoommppiilleerr Software that transforms a computer
pprrooggrraamm ttoo eexxeeccuuttaabbllee mmaacchhiinnee ccooddee
…… ……
- 6.
- 7.
HHaasshh TTaabbllee
AAhhaasshh ttaabbllee iiss aann aarrrraayy tthhaatt hhoollddss aa sseett ooff
((kkeeyy,, vvaalluuee)) ppaaiirrss
TThhee pprroocceessss ooff mmaappppiinngg aa kkeeyy ttoo aa ppoossiittiioonn iinn aa
ttaabbllee iiss ccaalllleedd hhaasshhiinngg
0 1 2 3 4 5 … m-1
…… …… …… …… …… …… …… ……
T
hh((kk)) HHaasshh ttaabbllee
ooff ssiizzee mm
HHaasshh ffuunnccttiioonn
hh:: kk →→ 00 …… mm--11
7
- 8.
Hash FFuunnccttiioonnss aannddHHaasshhiinngg
AA hhaasshh ttaabbllee hhaass mm sslloottss,, iinnddeexxeedd ffrroomm 00 ttoo mm--11
AA hhaasshh ffuunnccttiioonn hh((kk)) mmaappss kkeeyyss ttoo ppoossiittiioonnss::
hh:: kk →→ 00 …… mm--11
FFoorr aannyy vvaalluuee kk iinn tthhee kkeeyy rraannggee aanndd ssoommee hhaasshh
ffuunnccttiioonn hh wwee hhaavvee hh((kk)) == pp aanndd 00 ≤≤ pp << mm
0 1 2 3 4 5 … m-1
…… …… …… …… …… …… …… ……
T
hh((kk))
8
- 9.
HHaasshhiinngg FFuunnccttiioonnss
PPeerrffeecctt hhaasshhiinngg ffuunnccttiioonn ((PPHHFF))
hh((kk)) :: oonnee--ttoo--oonnee mmaappppiinngg ooff eeaacchh kkeeyy kk ttoo aann
iinntteeggeerr iinn tthhee rraannggee [[00,, mm--11]]
TThhee PPHHFF mmaappss eeaacchh kkeeyy ttoo aa ddiissttiinncctt iinntteeggeerr
wwiitthhiinn ssoommee mmaannaaggeeaabbllee rraannggee
FFiinnddiinngg aa ppeerrffeecctt hhaasshhiinngg ffuunnccttiioonn iiss iinn mmoosstt
ccaasseess iimmppoossssiibbllee
MMoorree rreeaalliissttiiccaallllyy
HHaasshh ffuunnccttiioonn hh((kk)) tthhaatt mmaappss mmoosstt ooff tthhee kkeeyyss
oonnttoo uunniiqquuee iinntteeggeerrss,, bbuutt nnoott aallll
9
- 10.
CCoolllliissiioonnss iinn aaHHaasshh TTaabbllee
AA ccoolllliissiioonn iiss tthhee ssiittuuaattiioonn wwhheenn ddiiffffeerreenntt kkeeyyss
hhaavvee tthhee ssaammee hhaasshh vvaalluuee
hh((kk11)) == hh((kk22)) ffoorr kk11 ≠≠ kk22
WWhheenn tthhee nnuummbbeerr ooff ccoolllliissiioonnss iiss ssuuffffiicciieennttllyy
ssmmaallll,, tthhee hhaasshh ttaabblleess wwoorrkk qquuiittee wweellll ((ffaasstt))
SSeevveerraall ccoolllliissiioonnss rreessoolluuttiioonn ssttrraatteeggiieess eexxiisstt
CChhaaiinniinngg iinn aa lliisstt
UUssiinngg tthhee nneeiigghhbboorriinngg sslloottss ((lliinneeaarr pprroobbiinngg))
RRee--hhaasshhiinngg
......
10
- 11.
CCoolllliissiioonn RReessoolluuttiioonn:: CChhaaiinniinngg
hh((""PPeesshhoo"")) == 44
hh((""KKiirroo"")) == 22
hh((""MMiimmii"")) == 11
hh((""IIvvaann"")) == 22
hh((""LLiillii"")) == mm--11
0 1 2 3 4 … m-1
Kiro
Ivan
null
Mimi
null
Lili
null
Pesho
null
ccoolllliissiioonn
CChhaaiinniinngg
eelleemmeennttss iinn
ccaassee ooff ccoolllliissiioonn
nnuullll …… …… nnuullll …… …… ……
T
11
- 12.
HHaasshh TTaabblleess aannddEEffffiicciieennccyy
HHaasshh ttaabblleess aarree tthhee mmoosstt eeffffiicciieenntt
iimmpplleemmeennttaattiioonn ooff AADDTT ""ddiiccttiioonnaarryy""
AAdddd // FFiinndd // DDeelleettee ttaakkee jjuusstt ffeeww pprriimmiittiivvee
ooppeerraattiioonnss
SSppeeeedd ddooeess nnoott ddeeppeenndd oonn tthhee ssiizzee ooff tthhee hhaasshh--
ttaabbllee ((ccoonnssttaanntt ttiimmee))
EExxaammppllee:: ffiinnddiinngg aann eelleemmeenntt iinn aa hhaasshh--ttaabbllee
wwiitthh 11 000000 000000 eelleemmeennttss,, ttaakkeess jjuusstt ffeeww sstteeppss
FFiinnddiinngg aann eelleemmeenntt iinn aarrrraayy ooff 11 000000 000000 eelleemmeennttss
ttaakkeess aavveerraaggee 50000 000000 sstteeppss
12
- 13.
- 14.
- 15.
DDiiccttiioonnaarryy<<TTKKeeyy,,TTVVaalluuee>>
IImmpplleemmeennttsstthhee AADDTT ddiiccttiioonnaarryy aass hhaasshh ttaabbllee
SSiizzee iiss ddyynnaammiiccaallllyy iinnccrreeaasseedd aass nneeeeddeedd
CCoonnttaaiinnss aa ccoolllleeccttiioonn ooff kkeeyy--vvaalluuee ppaaiirrss
CCoolllliissiioonnss aarree rreessoollvveedd bbyy cchhaaiinniinngg
EElleemmeennttss hhaavvee aallmmoosstt rraannddoomm oorrddeerr
OOrrddeerreedd bbyy tthhee hhaasshh ccooddee ooff tthhee kkeeyy
DDiiccttiioonnaarryy<<TTKKeeyy,,TTVVaalluuee>> rreelliieess oonn
OObbjjeecctt..EEqquuaallss(()) –– ffoorr ccoommppaarriinngg tthhee kkeeyyss
OObbjjeecctt..GGeettHHaasshhCCooddee(()) –– ffoorr ccaallccuullaattiinngg tthhee
hhaasshh ccooddeess ooff tthhee kkeeyyss
15
- 16.
DDiiccttiioonnaarryy<<TTKKeeyy,,TTVVaalluuee>> ((22))
MMaajjoorrooppeerraattiioonnss::
AAdddd((TTKKeeyy,,TTVVaalluuee)) –– aaddddss aann eelleemmeenntt wwiitthh
tthhee ssppeecciiffiieedd kkeeyy aanndd vvaalluuee
RReemmoovvee((TTKKeeyy)) –– rreemmoovveess tthhee eelleemmeenntt bbyy kkeeyy
tthhiiss[[]] –– ggeett//aadddd//rreeppllaaccee ooff eelleemmeenntt bbyy kkeeyy
CClleeaarr(()) –– rreemmoovveess aallll eelleemmeennttss
CCoouunntt –– rreettuurrnnss tthhee nnuummbbeerr ooff eelleemmeennttss
KKeeyyss –– rreettuurrnnss aa ccoolllleeccttiioonn ooff tthhee kkeeyyss
VVaalluueess –– rreettuurrnnss aa ccoolllleeccttiioonn ooff tthhee vvaalluueess
16
- 17.
DDiiccttiioonnaarryy<<TTKKeeyy,,TTVVaalluuee>> ((33))
MMaajjoorr ooppeerraattiioonnss::
CCoonnttaaiinnssKKeeyy((TTKKeeyy)) –– cchheecckkss wwhheetthheerr tthhee
ddiiccttiioonnaarryy ccoonnttaaiinnss ggiivveenn kkeeyy
CCoonnttaaiinnssVVaalluuee((TTVVaalluuee)) –– cchheecckkss wwhheetthheerr
tthhee ddiiccttiioonnaarryy ccoonnttaaiinnss ggiivveenn vvaalluuee
WWaarrnniinngg:: ssllooww ooppeerraattiioonn!!
TTrryyGGeettVVaalluuee((TTKKeeyy,, oouutt TTVVaalluuee))
IIff tthhee kkeeyy iiss ffoouunndd,, rreettuurrnnss iitt iinn tthhee TTVVaalluuee
OOtthheerrwwiissee rreettuurrnnss ffaallssee
17
- 18.
DDiiccttiioonnaarryy<<TTKKeeyy,,TTVVaalluuee>> ––
EExxaammppllee
DDiiccttiioonnaarryy<<ssttrriinngg,, iinntt>> ssttuuddeennttssMMaarrkkss ==
nneeww DDiiccttiioonnaarryy<<ssttrriinngg,, iinntt>>(());;
ssttuuddeennttssMMaarrkkss..AAdddd((""IIvvaann"",, 44));;
ssttuuddeennttssMMaarrkkss..AAdddd((""PPeetteerr"",, 66));;
ssttuuddeennttssMMaarrkkss..AAdddd((""MMaarriiaa"",, 66));;
ssttuuddeennttssMMaarrkkss..AAdddd((""GGeeoorrggee"",, 55));;
iinntt ppeetteerrMMaarrkk == ssttuuddeennttssMMaarrkkss[[""PPeetteerr""]];;
CCoonnssoollee..WWrriitteeLLiinnee((""PPeetteerr''ss mmaarrkk:: {{00}}"",, ppeetteerrMMaarrkk));;
CCoonnssoollee..WWrriitteeLLiinnee((""IIss PPeetteerr iinn tthhee hhaasshh ttaabbllee:: {{00}}"",,
ssttuuddeennttssMMaarrkkss..CCoonnttaaiinnssKKeeyy((""PPeetteerr""))));;
CCoonnssoollee..WWrriitteeLLiinnee((""SSttuuddeennttss aanndd ggrraaddeess::""));;
ffoorreeaacchh ((vvaarr ppaaiirr iinn ssttuuddeennttssMMaarrkkss))
{{
CCoonnssoollee..WWrriitteeLLiinnee((""{{00}} ---->> {{11}}"",, ppaaiirr..KKeeyy,,
ppaaiirr..VVaalluuee));;
}}
18
- 19.
- 20.
CCoouunnttiinngg tthhee WWoorrddssiinn aa TTeexxtt
ssttrriinngg tteexxtt == ""aa tteexxtt,, ssoommee tteexxtt,, jjuusstt ssoommee tteexxtt"";;
IIDDiiccttiioonnaarryy<<ssttrriinngg,, iinntt>> wwoorrddssCCoouunntt ==
nneeww DDiiccttiioonnaarryy<<ssttrriinngg,, iinntt>>(());;
ssttrriinngg[[]] wwoorrddss == tteexxtt..SSpplliitt(('' '',, '',,'',, ''..''));;
ffoorreeaacchh ((ssttrriinngg wwoorrdd iinn wwoorrddss))
{{
iinntt ccoouunntt == 11;;
iiff ((wwoorrddssCCoouunntt..CCoonnttaaiinnssKKeeyy((wwoorrdd))))
ccoouunntt == wwoorrddssCCoouunntt[[wwoorrdd]] ++ 11;;
wwoorrddssCCoouunntt[[wwoorrdd]] == ccoouunntt;;
}}
ffoorreeaacchh((vvaarr ppaaiirr iinn wwoorrddssCCoouunntt))
{{
CCoonnssoollee..WWrriitteeLLiinnee((""{{00}} -->> {{11}}"",, ppaaiirr..KKeeyy,, ppaaiirr..VVaalluuee));;
}}
20
- 21.
- 22.
SSoorrtteeddDDiiccttiioonnaarryy
<<TTKKeeyy,,TTVVaalluuee>>
SSoorrtteeddDDiiccttiioonnaarryy<<TTKKeeyy,,TTVVaalluuee>>
iimmpplleemmeennttss tthhee AADDTT ""ddiiccttiioonnaarryy"" aass sseellff--
bbaallaanncciinngg sseeaarrcchh ttrreeee
EElleemmeennttss aarree aarrrraannggeedd iinn tthhee ttrreeee oorrddeerreedd bbyy kkeeyy
TTrraavveerrssiinngg tthhee ttrreeee rreettuurrnnss tthhee eelleemmeennttss iinn
iinnccrreeaassiinngg oorrddeerr
AAdddd // FFiinndd // DDeelleettee ppeerrffoorrmm lloogg22((nn)) ooppeerraattiioonnss
UUssee SSoorrtteeddDDiiccttiioonnaarryy<<TTKKeeyy,,TTVVaalluuee>>
wwhheenn yyoouu nneeeedd tthhee eelleemmeennttss ssoorrtteedd
OOtthheerrwwiissee uussee DDiiccttiioonnaarryy<<TTKKeeyy,,TTVVaalluuee>> –– iitt
hhaass bbeetttteerr ppeerrffoorrmmaannccee
22
- 23.
CCoouunnttiinngg WWoorrddss ((AAggaaiinn))
ssttrriinngg tteexxtt == ""aa tteexxtt,, ssoommee tteexxtt,, jjuusstt ssoommee tteexxtt"";;
IIDDiiccttiioonnaarryy<<ssttrriinngg,, iinntt>> wwoorrddssCCoouunntt ==
nneeww SSoorrtteeddDDiiccttiioonnaarryy<<ssttrriinngg,, iinntt>>(());;
ssttrriinngg[[]] wwoorrddss == tteexxtt..SSpplliitt((' ',, ',,',, '..'));;
ffoorreeaacchh ((ssttrriinngg wwoorrdd iinn wwoorrddss))
{{
iinntt ccoouunntt == 11;;
iiff ((wwoorrddssCCoouunntt..CCoonnttaaiinnssKKeeyy((wwoorrdd))))
ccoouunntt == wwoorrddssCCoouunntt[[wwoorrdd]] ++ 11;;
wwoorrddssCCoouunntt[[wwoorrdd]] == ccoouunntt;;
}}
ffoorreeaacchh((vvaarr ppaaiirr iinn wwoorrddssCCoouunntt))
{{
CCoonnssoollee..WWrriitteeLLiinnee((""{{00}} -->> {{11}}"",, ppaaiirr..KKeeyy,, ppaaiirr..VVaalluuee));;
}}
23
- 24.
- 25.
IICCoommppaarraabbllee<<TT>>
DDiiccttiioonnaarryy<<TTKKeeyy,,TTVVaalluuee>>rreelliieess oonn
OObbjjeecctt..EEqquuaallss(()) –– ffoorr ccoommppaarriinngg tthhee kkeeyyss
OObbjjeecctt..GGeettHHaasshhCCooddee(()) –– ffoorr ccaallccuullaattiinngg tthhee
hhaasshh ccooddeess ooff tthhee kkeeyyss
SSoorrtteeddDDiiccttiioonnaarryy<<TTKKeeyy,,TTVVaalluuee>> rreelliieess oonn
IICCoommppaarraabbllee<<TT>> ffoorr oorrddeerriinngg tthhee kkeeyyss
BBuuiilltt--iinn ttyyppeess lliikkee iinntt,, lloonngg,, ffllooaatt,, ssttrriinngg
aanndd DDaatteeTTiimmee aallrreeaaddyy iimmpplleemmeenntt EEqquuaallss(()),,
GGeettHHaasshhCCooddee(()) aanndd IICCoommppaarraabbllee<<TT>>
OOtthheerr ttyyppeess uusseedd wwhheenn uusseedd aass ddiiccttiioonnaarryy kkeeyyss
sshhoouulldd pprroovviiddee ccuussttoomm iimmpplleemmeennttaattiioonnss
25
- 26.
IImmpplleemmeennttiinngg EEqquuaallss(()) aanndd
GGeettHHaasshhCCooddee(())
26
ppuubblliicc ssttrruucctt PPooiinntt
{{
ppuubblliicc iinntt XX {{ ggeett;; sseett;; }}
ppuubblliicc iinntt YY {{ ggeett;; sseett;; }}
ppuubblliicc oovveerrrriiddee bbooooll EEqquuaallss((OObbjjeecctt oobbjj))
{{
iiff ((!!((oobbjj iiss PPooiinntt)) |||| ((oobbjj ==== nnuullll)))) rreettuurrnn ffaallssee;;
PPooiinntt pp == ((PPooiinntt))oobbjj;;
rreettuurrnn ((XX ==== pp..XX)) &&&& ((YY ==== pp..YY));;
}}
ppuubblliicc oovveerrrriiddee iinntt GGeettHHaasshhCCooddee(())
{{
rreettuurrnn ((XX <<<< 1166 || XX >>>> 1166)) ^^ YY;;
}}
}}
- 27.
IImmpplleemmeennttiinngg IICCoommppaarraabbllee<<TT>>
27
ppuubblliicc ssttrruucctt PPooiinntt :: IICCoommppaarraabbllee<<PPooiinntt>>
{{
ppuubblliicc iinntt XX {{ ggeett;; sseett;; }}
ppuubblliicc iinntt YY {{ ggeett;; sseett;; }}
ppuubblliicc iinntt CCoommppaarreeTToo((PPooiinntt ootthheerrPPooiinntt))
{{
iiff ((XX !!== ootthheerrPPooiinntt..XX))
{{
rreettuurrnn tthhiiss..XX..CCoommppaarreeTToo((ootthheerrPPooiinntt..XX));;
}}
eellssee
{{
rreettuurrnn tthhiiss..YY..CCoommppaarreeTToo((ootthheerrPPooiinntt..YY));;
}}
}}
}}
- 28.
- 29.
SSeett aanndd BBaaggAADDTTss
TThhee aabbssttrraacctt ddaattaa ttyyppee ((AADDTT)) ""sseett"" kkeeeeppss aa sseett ooff
eelleemmeennttss wwiitthh nnoo dduupplliiccaatteess
SSeettss wwiitthh dduupplliiccaatteess aarree aallssoo kknnoowwnn aass AADDTT ""bbaagg""
SSeett ooppeerraattiioonnss::
AAdddd((eelleemmeenntt))
CCoonnttaaiinnss((eelleemmeenntt)) ttrruuee // ffaallssee
DDeelleettee((eelleemmeenntt))
UUnniioonn((sseett)) // IInntteerrsseecctt((sseett))
SSeettss ccaann bbee iimmpplleemmeenntteedd iinn sseevveerraall wwaayyss
LLiisstt,, aarrrraayy,, hhaasshh ttaabbllee,, bbaallaanncceedd ttrreeee,, ......
29
- 30.
- 31.
HHaasshhSSeett<<TT>>
HHaasshhSSeett<<TT>>iimmpplleemmeennttss AADDTT sseett bbyy hhaasshh ttaabbllee
EElleemmeennttss aarree iinn nnoo ppaarrttiiccuullaarr oorrddeerr
AAllll mmaajjoorr ooppeerraattiioonnss aarree ffaasstt::
AAdddd((eelleemmeenntt)) –– aappppeennddss aann eelleemmeenntt ttoo tthhee sseett
DDooeess nnootthhiinngg iiff tthhee eelleemmeenntt aallrreeaaddyy eexxiissttss
RReemmoovvee((eelleemmeenntt)) –– rreemmoovveess ggiivveenn eelleemmeenntt
CCoouunntt –– rreettuurrnnss tthhee nnuummbbeerr ooff eelleemmeennttss
UUnniioonnWWiitthh((sseett)) // IInntteerrsseeccttWWiitthh((sseett)) ––
ppeerrffoorrmmss uunniioonn // iinntteerrsseeccttiioonn wwiitthh aannootthheerr sseett
31
- 32.
HHaasshhSSeett<<TT>> –– EExxaammppllee
32
IISSeett<<ssttrriinngg>> ffiirrssttSSeett == nneeww HHaasshhSSeett<<ssttrriinngg>>((
nneeww ssttrriinngg[[]] {{ ""SSQQLL"",, ""JJaavvaa"",, ""CC##"",, ""PPHHPP"" }}));;
IISSeett<<ssttrriinngg>> sseeccoonnddSSeett == nneeww HHaasshhSSeett<<ssttrriinngg>>((
nneeww ssttrriinngg[[]] {{ ""OOrraaccllee"",, ""SSQQLL"",, ""MMyySSQQLL"" }}));;
IISSeett<<ssttrriinngg>> uunniioonn == nneeww HHaasshhSSeett<<ssttrriinngg>>((ffiirrssttSSeett));;
uunniioonn..UUnniioonnWWiitthh((sseeccoonnddSSeett));;
PPrriinnttSSeett((uunniioonn));; //// SSQQLL JJaavvaa CC## PPHHPP OOrraaccllee MMyySSQQLL
pprriivvaattee ssttaattiicc vvooiidd PPrriinnttSSeett<<TT>>((IISSeett<<TT>> sseett))
{{
ffoorreeaacchh ((vvaarr eelleemmeenntt iinn sseett))
{{
CCoonnssoollee..WWrriittee((""{{00}} "",, eelleemmeenntt));;
}}
CCoonnssoollee..WWrriitteeLLiinnee(());;
}}
- 33.
SSoorrtteeddSSeett<<TT>>
SSoorrtteeddSSeett<<TT>>iimmpplleemmeennttss AADDTT sseett bbyy bbaallaanncceedd
sseeaarrcchh ttrreeee
EElleemmeennttss aarree ssoorrtteedd iinn iinnccrreeaassiinngg oorrddeerr
EExxaammppllee::
33
IISSeett<<ssttrriinngg>> ffiirrssttSSeett == nneeww SSoorrtteeddSSeett<<ssttrriinngg>>((
nneeww ssttrriinngg[[]] {{ ""SSQQLL"",, ""JJaavvaa"",, ""CC##"",, ""PPHHPP"" }}));;
IISSeett<<ssttrriinngg>> sseeccoonnddSSeett == nneeww SSoorrtteeddSSeett<<ssttrriinngg>>((
nneeww ssttrriinngg[[]] {{ ""OOrraaccllee"",, ""SSQQLL"",, ""MMyySSQQLL"" }}));;
IISSeett<<ssttrriinngg>> uunniioonn == nneeww HHaasshhSSeett<<ssttrriinngg>>((ffiirrssttSSeett));;
uunniioonn..UUnniioonnWWiitthh((sseeccoonnddSSeett));;
PPrriinnttSSeett((uunniioonn));; //// CC## JJaavvaa PPHHPP SSQQLL MMyySSQQLL OOrraaccllee
- 34.
- 35.
SSuummmmaarryy
DDiiccttiioonnaarriieessmmaapp kkeeyy ttoo vvaalluuee
CCaann bbee iimmpplleemmeenntteedd aass hhaasshh ttaabbllee oorr bbaallaanncceedd
sseeaarrcchh ttrreeee
HHaasshh--ttaabblleess mmaapp kkeeyyss ttoo vvaalluueess
RReellyy oonn hhaasshh--ffuunnccttiioonnss ttoo ddiissttrriibbuuttee tthhee kkeeyyss iinn tthhee
ttaabbllee
CCoolllliissiioonnss nneeeeddss rreessoolluuttiioonn aallggoorriitthhmm ((ee..gg..
cchhaaiinniinngg))
VVeerryy ffaasstt aadddd // ffiinndd // ddeelleettee
SSeettss hhoolldd aa ggrroouupp ooff eelleemmeennttss
HHaasshh--ttaabbllee oorr bbaallaanncceedd ttrreeee iimmpplleemmeennttaattiioonnss
35
- 36.
- 37.
EExxeerrcciisseess
11.. WWrriitteeaa pprrooggrraamm tthhaatt ccoouunnttss iinn aa ggiivveenn aarrrraayy ooff
iinntteeggeerrss tthhee nnuummbbeerr ooff ooccccuurrrreenncceess ooff eeaacchh iinntteeggeerr..
UUssee DDiiccttiioonnaarryy<<TTKKeeyy,,TTVVaalluuee>>..
EExxaammppllee:: aarrrraayy == {{33,, 44,, 44,, 22,, 33,, 33,, 44,, 33,, 22}}
22 22 ttiimmeess
33 44 ttiimmeess
44 33 ttiimmeess
11.. WWrriittee aa pprrooggrraamm tthhaatt eexxttrraaccttss ffrroomm aa ggiivveenn sseeqquueennccee
ooff ssttrriinnggss aallll eelleemmeennttss tthhaatt pprreesseenntt iinn iitt oodddd nnuummbbeerr
ooff ttiimmeess.. EExxaammppllee::
{{CC##,, SSQQLL,, PPHHPP,, PPHHPP,, SSQQLL,, SSQQLL }} {{CC##,, SSQQLL}}
37
- 38.
EExxeerrcciisseess ((22))
33..WWrriittee aa pprrooggrraamm tthhaatt ccoouunnttss hhooww mmaannyy ttiimmeess eeaacchh
wwoorrdd ffrroomm ggiivveenn tteexxtt ffiillee wwoorrddss..ttxxtt aappppeeaarrss iinn iitt..
TThhee cchhaarraacctteerr ccaassiinngg ddiiffffeerreenncceess sshhoouulldd bbee iiggnnoorreedd..
TThhee rreessuulltt wwoorrddss sshhoouulldd bbee oorrddeerreedd bbyy tthheeiirr nnuummbbeerr
ooff ooccccuurrrreenncceess iinn tthhee tteexxtt.. EExxaammppllee::
iiss 22
tthhee 22
tthhiiss 33
tteexxtt 66
38
TThhiiss iiss tthhee TTEEXXTT.. TTeexxtt,, tteexxtt,, tteexxtt –– TTHHIISS TTEEXXTT!!
IIss tthhiiss tthhee tteexxtt??
- 39.
EExxeerrcciisseess ((33))
39
44.. IImmpplleemmeenntt tthhee ddaattaa ssttrruuccttuurree ""hhaasshh ttaabbllee"" iinn aa ccllaassss
HHaasshhTTaabbllee<<KK,,TT>>.. KKeeeepp tthhee ddaattaa iinn aarrrraayy ooff lliissttss ooff kkeeyy--
vvaalluuee ppaaiirrss ((LLiinnkkeeddLLiisstt<<KKeeyyVVaalluueePPaaiirr<<KK,,TT>>>>[[]]) wwiitthh
iinniittiiaall ccaappaacciittyy ooff 1166.. WWhheenn tthhee hhaasshh ttaabbllee llooaadd rruunnss
oovveerr 7755%%,, ppeerrffoorrmm rreessiizziinngg ttoo 22 ttiimmeess llaarrggeerr ccaappaacciittyy..
IImmpplleemmeenntt tthhee ffoolllloowwiinngg mmeetthhooddss aanndd pprrooppeerrttiieess::
AAdddd((kkeeyy,, vvaalluuee)),, Fiinndd((kkeeyy))vvaalluuee,,
RReemmoovvee(( kkeeyy)),, CCoouunntt,, CClleeaarr(()),, tthhiiss[[]],, KKeeyyss.. TTrryy
ttoo mmaakkee tthhee hhaasshh ttaabbllee ttoo ssuuppppoorrtt iitteerraattiinngg oovveerr iittss
eelleemmeennttss wwiitthh ffoorreeaacchh..
55.. IImmpplleemmeenntt tthhee ddaattaa ssttrruuccttuurree ""sseett"" iinn aa ccllaassss
HHaasshheeddSSeett<<TT>> uussiinngg yyoouurr ccllaassss HHaasshhTTaabbllee<<TT,,TT>> ttoo
hhoolldd tthhee eelleemmeennttss.. IImmpplleemmeenntt aallll ssttaannddaarrdd sseett
ooppeerraattiioonnss lliikkee AAdddd((TT)),, Fiinndd((TT)),, RReemmoovvee((TT)),, CCoouunntt,,
CClleeaarr(()),, uunniioonn aanndd iinntteerrsseecctt..