Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #17802

Re: hashCode

Path csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx02.iad01.newshosting.com!newshosting.com!news-out.readnews.com!transit3.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!53ab2750!not-for-mail
From "Eric Sosman" <eric.sosman@1:261/38.remove-nlb-this>
Subject Re: hashCode
Message-ID <502943B2.56750.calajapr@time.synchro.net> (permalink)
X-Comment-To Arne Vajhøj
Newsgroups comp.lang.java.programmer
In-Reply-To <502943B2.56749.calajapr@time.synchro.net>
References <502943B2.56749.calajapr@time.synchro.net>
X-FTN-AREA COMP.LANG.JAVA.PROGRAMMER
X-FTN-MSGID 1:261/38 f80daf3c
X-FTN-REPLY 1:261/38 b4274699
Content-Type text/plain; charset=IBM437
Content-Transfer-Encoding 8bit
X-Gateway time.synchro.net [Synchronet 3.16a-Win32 NewsLink 1.98]
Lines 65
Date Mon, 13 Aug 2012 18:36:15 GMT
NNTP-Posting-Host 69.21.70.65
X-Complaints-To news@tds.net
X-Trace newsreading01.news.tds.net 1344882975 69.21.70.65 (Mon, 13 Aug 2012 13:36:15 CDT)
NNTP-Posting-Date Mon, 13 Aug 2012 13:36:15 CDT
Organization tds.net
X-Received-Bytes 3379
Xref csiph.com comp.lang.java.programmer:17802

Show key headers only | View raw


  To: =?UTF-8?B?QXJuZSBWYWpow7hq?=
From: "Eric Sosman" <eric.sosman@1:261/38.remove-m2z-this>

  To: =?UTF-8?B?QXJuZSBWYWpow7hq?=
From: Eric Sosman <esosman@ieee-dot-org.invalid>

On 8/11/2012 10:29 PM, Arne Vajh-,j wrote:
> On 8/11/2012 10:15 PM, Arne Vajh-,j wrote:
>> This is a classic test question in basic Java SE. And that returning
>> a constant is correct but not smart should be in most Java SE
>> text books.
>
> Effective Java / Joshua Bloch:
>
> <quote>
> // The worst possible legal hash function - never use!
> public int hashCode() { return 42; }
>
> It is legal because it ensures that equal objects have the
> same hash code. It's atrocious because ...
> </quote>
>
> Java 2 SUN Certified Programmer & Developer / Kathy Sierra & Bert Bates:
>
> <quote>
> A hashCode() that returns the same value for all instances whether
> they're equal or not is still a legal - even appropriate - hashCode()
> method! For example,
> public int hashCode() {
>      return 1492;
> }
> would not violate the contract
> ...
> This hashCode() method is horrible inefficient, ...
> ...
> Nontheless, this one-hash-fits-all method would be
> considered appropriate and even correct because it
> doesn't violate the contract. Once more, correct does
> not necessarily mean good.
> </quote>

     All this means is that people know how to describe a "correct"
hashCode(), but nobody knows how to describe a "usable" hashCode() in terms 
that apply testably to all circumstances.

     The O.P. asked whether it would "be potentially better" if
Object's hashCode() returned a constant.  He did *not* ask whether such an 
implementation would be correct; he only asked if it would "be potentially 
better."  Upon prompting he explained what he meant by "better," and in light 
of that explanation the answer to his original question is NO.  Discussions 
about "Oh, but it's CORRECT" are just red herrings; it's still not "better."

--
Eric Sosman
esosman@ieee-dot-org.invalid

-+- BBBS/Li6 v4.10 Dada-1
 + Origin: Prism bbs (1:261/38)
-+- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

--- BBBS/Li6 v4.10 Dada-1
 * Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: hashCode "Lew" <lew@1:261/38.remove-nlb-this> - 2012-08-13 18:36 +0000
  Re: hashCode "Arne Vajhøj" <������
høj@1:261/38.remove-nlb-this> - 2012-08-13 18:36 +0000
    Re: hashCode "Arne Vajhøj" <������
høj@1:261/38.remove-nlb-this> - 2012-08-13 18:36 +0000
      Re: hashCode "Eric Sosman" <eric.sosman@1:261/38.remove-nlb-this> - 2012-08-13 18:36 +0000
        Re: hashCode "Arne Vajhøj" <������
høj@1:261/38.remove-nlb-this> - 2012-08-13 18:36 +0000

csiph-web