Predstavte si kolekci jako soubor plechovek. Kazda plechovka ma cislo podle
hashCode a obsahuje urcity pocet prvku.

Dejme tomu, ze se hashCode pro kazdy klic v HashMap pocita tak, ze u kazdeho
pismena se zjisti poradi v abecede a pricte se k vyslednemu hashCode.

mame klice : Mary(20), Amy(15), May(15), Dirk(34) - hodnoty nemusite
prepocitavat...nejsou presne, ale pro ilustraci to staci

takze plechovka s cislem 20 bude obsahovat klic "Mary", plechovka s cislem
15 klice "Amy" a "May" atd.

Vyhledavani v kolekcich funguje tak, ze se pomoci hashCode najde spravna
plechovka a ta se projde pomoci metody equals!

Muzete vracet konstantu jako hashCode, ale to by bylo neefektivni -> jedna
plechovka a prilis mnoho volani equals. Takze je vyhodne vracet hodnotu
vypocitanou z atributu klice.

Je dulezite si uvedomit, ze hashCode se musi pocitat tak, aby bylo
KONZISTENTNI. Tzn. nemuzeme ho pocitat pomoci transientnich atributu.
Mohl byste ulozit jiny hashCode, nez pomoci ktereho budete hledat. Tzn.
objekt byste podle daneho hashCode nemohl vubec dohledat. Stejne tak by mohl
fungovat nahodne generovany hashCode.

Takze hashCode neni jen o rychlosti, ale take o fungovani v kolekcich!

Doufam, ze to trochu pomohlo.

----- Original Message ----- 
From: "Kamzik-II" <[EMAIL PROTECTED]>
To: "Java" <[email protected]>
Sent: Thursday, July 27, 2006 3:36 PM
Subject: Re: equals a hashCode (WAS: java.security.Permission)


> Koukal sem do toho JavaDocu a neni mi teda jasne, k cemu by se to dalo
> vyuzit... Je tam psano o hashtables, ktere jsem asi taky nepochopil, nebo
> nwim, asi jsem uplne mimo, myslel jsem, ze je to nejake id objektu, ale
> pokud stejne cislo muze vracet vic objektu, tak se to neda pouzit ani na
> to...
> ----- Original Message ----- 
> From: "Kamzik-II" <[EMAIL PROTECTED]>
> To: "Java" <[email protected]>
> Sent: Thursday, July 27, 2006 3:30 PM
> Subject: Re: equals a hashCode (WAS: java.security.Permission)
>
>
> > Jo jo jasne, ale me spis zajima, proc je
> > v ramci vm a ne v ramci aplikace, btw: neni to nahodou to same?
> >
> >
> > ----- Original Message ----- 
> > From: "Kamil Podlesak" <[EMAIL PROTECTED]>
> > To: "Java" <[email protected]>
> > Sent: Thursday, July 27, 2006 3:25 PM
> > Subject: Re: equals a hashCode (WAS: java.security.Permission)
> >
> >
> >> Kamzik-II wrote:
> >>
> >>> O boze, equals tady nekdo pekne vysvetlil na
> >>> vytiscich knih, hascode vicemene taky chapu, ale
> >>> neni mi jasne na co je mi dobrej ;-)
> >>
> >> Hashcode je dobrej v okamziku, kdyz se patricny objekt uklada do
> >> hashtabulky ci mnoziny. A to s nejvetsi pravdepodobnosti bude.
> >>
> >> -- 
> >> Kamil Podlesak <[EMAIL PROTECTED]>
> >>
> >>
> >
> >
>
>
>
> !DSPAM:44c8c0dd124801367610778!
>
>
>


Odpovedet emailem