Podlesak Kamil wrote:
> Zdravim,
> 
> To je proste: Map#hashCode() presne definuje ze vysledek musi byt vypocitan 
> jako soucet hashcode vsech zaznamu. Pridanim noveho prvku se tedy zmeni 
> hodnota hashCode. 
> 
> Jenomze HashSet (resp. HashMap, kterou interne pouziva) zarazuje i hleda 
> zaznamy podle hashCode(). Jakmile se hashCode zmeni, tak hleda jinde a 
> nenajde.
> 
> Plati obecne pravidlo:
>   Objekty vkladane do hash mapy NESMI MENIT svuj hashCode()! Tedy alespon po 
> dobu, co jsou v mape.
> Konkretne pak plati:
>   Kolekce (Map, Collection) vlozene do hash mapy se NESMI MODIFIKOVAT.
> 
> Pokud potrebujete mit v mnozine kolekce ktere bezne modifikujete, pouzijte 
> IdentityHashMap.

Jen pro upresneni, nesmi se menit vysledek volani hashCode()
u objektu pouzivanych jako *klice* v *HashMap*, pripadne ukladanych
do HashSet (ktera interne pouziva HashMap). U objektu
vkladanych jako *hodnoty* v HashMap je to jedno.
U objektu vkladanych do implementaci Set a Map zalozenych
na jinem principu nez hashovaci tabulce by to melo byt taky jedno,
protoze hashCode() nevolaji. Napr. TreeSet.


Makub
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno             Martin Kuba
Institute of Computer Science    email: [EMAIL PROTECTED]
Masaryk University             http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ     mobil: +420-603-533775
--------------------------------------------------------------

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Odpovedet emailem