Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!eternal-september.org!feeder.eternal-september.org!newsfeed101.telia.com!starscream.dk.telia.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Robert Klemme Newsgroups: comp.lang.java.programmer Subject: Re: hashCode Date: Sun, 12 Aug 2012 17:06:07 +0200 Lines: 38 Message-ID: References: <563f186a-edb3-4311-ae48-3af7decfce2c@googlegroups.com> <6ac6c252-c370-4f74-b29d-ce5368019977@googlegroups.com> <502598d0$0$287$14726298@news.sunsite.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable X-Trace: individual.net v3dmSK4XoT2Oum3NVW0E3wG/mIBaweidVppitwu7w3YDp25bihTIKS+lvnb+zvnJ4= Cancel-Lock: sha1:uMqib667jweZQMynDCYuNGJTkck= User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:14.0) Gecko/20120713 Thunderbird/14.0 In-Reply-To: <502598d0$0$287$14726298@news.sunsite.dk> Xref: csiph.com comp.lang.java.programmer:17733 On 11.08.2012 01:27, Arne Vajh=F8j wrote: > On 8/10/2012 6:22 PM, bob smith wrote: >> On Friday, August 10, 2012 11:34:28 AM UTC-5, Eric Sosman wrote: >>> On 8/10/2012 11:47 AM, bob smith wrote: >>>> Is it always technically correct to override the hashCode function >>>> like so: >>>> @Override >>>> public int hashCode() { >>>> return 1; >>>> } >>>> Would it be potentially better if that was Object's implementation? >>> >>> Define "better." >> >> Better in the sense that you would never HAVE to override hashCode. >> >> Now, there are cases where you HAVE to override it, or your code is >> very broken. > > It is not broken. > > It will perform poorly in many cases. Well, I would go as far as to say that it will perform poorly in all=20 cases where hashCode() is actually needed - and that makes it broken.=20 The whole idea of hashing is based on the fact that the hash code=20 _somehow_ represents the item to be hashed. If all items have the same=20 constant hash code there is no point in hashing at all. So while it=20 does work, it does not work as intended. Kind regards robert --=20 remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/