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


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

Re: hashCode

From Eric Sosman <esosman@ieee-dot-org.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: hashCode
Date 2012-08-11 22:43 -0400
Organization A noiseless patient Spider
Message-ID <k0758q$agc$1@dont-email.me> (permalink)
References (3 earlier) <238731fe-b8c8-482d-b168-56ef9a0531bb@googlegroups.com> <502599a5$0$287$14726298@news.sunsite.dk> <k06pjn$grl$1@news.albasani.net> <502711b9$0$292$14726298@news.sunsite.dk> <502714fd$0$294$14726298@news.sunsite.dk>

Show all headers | View raw


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

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


Thread

hashCode bob smith <bob@coolfone.comze.com> - 2012-08-10 08:47 -0700
  Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-10 12:13 -0400
    Re: hashCode markspace <-@.> - 2012-08-10 10:13 -0700
      Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-10 13:38 -0400
        Re: hashCode rossum <rossum48@coldmail.com> - 2012-08-11 10:36 +0100
  Re: hashCode Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-10 12:34 -0400
    Re: hashCode bob smith <bob@coolfone.comze.com> - 2012-08-10 15:22 -0700
      Re: hashCode Lew <lewbloch@gmail.com> - 2012-08-10 15:32 -0700
        Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-10 19:30 -0400
          Re: hashCode Lew <noone@lewscanon.com> - 2012-08-11 16:24 -0700
            Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-11 22:15 -0400
              Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-11 22:29 -0400
                Re: hashCode Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-11 22:43 -0400
                Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-11 22:54 -0400
                Re: hashCode Lew <noone@lewscanon.com> - 2012-08-11 21:46 -0700
                Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-12 16:53 -0400
                Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-12 17:00 -0400
      Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-10 19:27 -0400
        Re: hashCode Robert Klemme <shortcutter@googlemail.com> - 2012-08-12 17:06 +0200
          Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-12 16:59 -0400
            Re: hashCode Robert Klemme <shortcutter@googlemail.com> - 2012-08-13 19:17 +0200
              Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-19 19:42 -0400
                Re: hashCode Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2012-08-21 10:30 +0000
              Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-19 19:47 -0400
                Re: hashCode Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2012-08-21 10:43 +0000
                Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-27 19:04 -0400
                Re: hashCode Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-08-27 16:55 -0700
                Re: hashCode markspace <-@.> - 2012-08-27 17:03 -0700
                Re: hashCode Lew <lewbloch@gmail.com> - 2012-08-27 17:49 -0700
                Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-27 21:37 -0400
                Re: hashCode Patricia Shanahan <pats@acm.org> - 2012-08-27 18:58 -0700
                Re: hashCode markspace <-@.> - 2012-08-27 21:19 -0700
                Re: hashCode Patricia Shanahan <pats@acm.org> - 2012-08-28 01:06 -0700
                Re: hashCode markspace <-@.> - 2012-08-28 09:19 -0700
                Re: hashCode Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-08-28 16:33 -0700
                Re: hashCode markspace <-@.> - 2012-08-28 17:02 -0700
                Re: hashCode Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-08-29 11:06 -0700
                Re: hashCode Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-29 14:49 -0400
                Re: hashCode Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-08-29 13:40 -0700
                Re: hashCode Gene Wirchenko <genew@ocis.net> - 2012-08-29 18:02 -0700
                Re: hashCode Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2012-08-31 00:52 +0200
                Re: hashCode Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-30 21:43 -0400
                Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-30 21:52 -0400
                Re: hashCode Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2012-08-31 04:18 +0200
                Re: hashCode Jim Janney <jjanney@shell.xmission.com> - 2012-08-31 09:08 -0600
                Re: hashCode Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-31 11:38 -0400
                Re: hashCode Robert Klemme <shortcutter@googlemail.com> - 2012-08-31 17:55 +0200
                Re: hashCode Jim Janney <jjanney@shell.xmission.com> - 2012-08-31 09:56 -0600
                Re: hashCode Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-31 14:32 -0400
                Re: hashCode Jim Janney <jjanney@shell.xmission.com> - 2012-08-31 14:38 -0600
                Re: hashCode Lew <lewbloch@gmail.com> - 2012-08-31 15:33 -0700
                Re: hashCode Jim Janney <jjanney@shell.xmission.com> - 2012-08-31 16:41 -0600
                Re: hashCode Lew <lewbloch@gmail.com> - 2012-08-31 16:26 -0700
                Re: hashCode Jim Janney <jjanney@shell.xmission.com> - 2012-09-02 11:54 -0600
                Re: hashCode Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2012-09-03 00:47 +0200
                Re: hashCode Jim Janney <jjanney@shell.xmission.com> - 2012-09-03 21:44 -0600
                Re: hashCode Jim Janney <jjanney@shell.xmission.com> - 2012-08-31 09:08 -0600
                Re: hashCode Robert Klemme <shortcutter@googlemail.com> - 2012-08-31 17:58 +0200
                Re: hashCode markspace <-@.> - 2012-08-29 11:51 -0700
                Re: hashCode Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-08-29 13:28 -0700
                Re: hashCode markspace <-@.> - 2012-08-29 16:05 -0700
                Re: hashCode Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-08-29 16:23 -0700
                Re: hashCode Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-29 20:56 -0400
                Re: hashCode Jan Burse <janburse@fastmail.fm> - 2012-08-30 11:19 +0200
                Re: hashCode Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-08-30 10:03 -0700
                Re: hashCode Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2012-08-30 18:34 +0000
                Re: hashCode Jim Janney <jjanney@shell.xmission.com> - 2012-08-30 08:11 -0600
                Re: hashCode Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-08-30 10:06 -0700
                Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-30 19:16 -0400
                Re: hashCode Lew <lewbloch@gmail.com> - 2012-08-28 13:58 -0700
                Re: hashCode Lew <lewbloch@gmail.com> - 2012-08-28 13:56 -0700
                Re: hashCode Patricia Shanahan <pats@acm.org> - 2012-08-28 14:07 -0700
                Re: hashCode Lew <lewbloch@gmail.com> - 2012-08-28 14:38 -0700
                Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-27 21:12 -0400
      Re: hashCode Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-11 07:58 -0400
        Re: hashCode Lew <noone@lewscanon.com> - 2012-08-11 16:29 -0700
          Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-11 22:16 -0400
      Re: hashCode Patricia Shanahan <pats@acm.org> - 2012-08-12 03:46 -0700
      Re: hashCode Joshua Cranmer <Pidgeot18@verizon.invalid> - 2012-08-12 12:23 -0400
        Re: hashCode Patricia Shanahan <pats@acm.org> - 2012-08-12 09:40 -0700
          Re: hashCode Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-12 13:59 -0400
            Re: hashCode Patricia Shanahan <pats@acm.org> - 2012-08-12 11:17 -0700
          Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-12 17:02 -0400
        Re: hashCode Jan Burse <janburse@fastmail.fm> - 2012-08-12 19:03 +0200
  Re: hashCode Roedy Green <see_website@mindprod.com.invalid> - 2012-08-10 12:17 -0700
    Re: hashCode Lew <lewbloch@gmail.com> - 2012-08-10 12:45 -0700
      Re: hashCode Roedy Green <see_website@mindprod.com.invalid> - 2012-08-11 04:54 -0700
        Re: hashCode Joerg Meier <joergmmeier@arcor.de> - 2012-08-11 18:25 +0200
          Re: hashCode Mike Winter <usenet@michael-winter.me.invalid> - 2012-08-11 18:53 +0100
        Re: hashCode Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-08-11 09:56 -0700
        Re: hashCode Jan Burse <janburse@fastmail.fm> - 2012-08-11 18:58 +0200
        Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-11 22:40 -0400
      Re: hashCode rossum <rossum48@coldmail.com> - 2012-08-11 18:47 +0100
    Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-10 19:25 -0400
      Re: hashCode Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-11 08:00 -0400
        Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-11 09:49 -0400
  Re: hashCode Jan Burse <janburse@fastmail.fm> - 2012-08-11 15:33 +0200
    Re: hashCode Jan Burse <janburse@fastmail.fm> - 2012-08-11 15:34 +0200
    Re: hashCode Lew <noone@lewscanon.com> - 2012-08-11 16:34 -0700
      Re: hashCode Lew <noone@lewscanon.com> - 2012-08-11 16:37 -0700
      Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-11 22:19 -0400
        Re: hashCode Lew <noone@lewscanon.com> - 2012-08-11 21:48 -0700
    Re: hashCode Jan Burse <janburse@fastmail.fm> - 2012-08-12 12:08 +0200
      Re: hashCode Jan Burse <janburse@fastmail.fm> - 2012-08-12 12:18 +0200
      Re: hashCode Lew <noone@lewscanon.com> - 2012-08-12 11:27 -0700
        Re: hashCode Arne Vajhøj <arne@vajhoej.dk> - 2012-08-12 17:11 -0400

csiph-web