Jiri Mares wrote: > Dovolil bych si nesouhlasit ... protoze pak by metoda contains byla treba v > rozporu s metodou remove, protoze contains > by vracela true a remove false, protoze objekt se zmenenym hashem z hashset > nesmazete ...
Nebyla. Javadoc k contains() i remove() se dedi ze Set, a o hashCode() v obojim neni ani zminka. Tedy pokud by se obe chovaly podle javadocu, musely by projit celou kolekci prvku, aby hledany prvek nasly. Problem IMHO spociva v tom, ze HashSet dedi javadoc ze Set, ktera mluvi pouze o equals(). A kdyz si prectete javadoc k Object.equals() a Object.hashCode(), tak se tam rika, ze pokud dva objekty davaji equals() true, tak musi davat i stejny hashCode(), ale zmeny v case se tam neresi. Tento kontrakt equals() a hashCode() vkladane mutovatelne kolekce v kazdem okamziku splnuji. Tedy to, ze HashSet hleda objekty podle hodnoty hashCode() v okamziku vlozeni, a nikoliv prohledanim vsech prvku kolekce, je implementacni detail HashSet, kterym se lisi od Set, a nemela by tedy od ni dedit javadoc. 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 --------------------------------------------------------------
smime.p7s
Description: S/MIME Cryptographic Signature
