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


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

Re: hashCode

From Lew <lewbloch@gmail.com>
Newsgroups comp.lang.java.programmer
Subject Re: hashCode
Date 2012-08-10 12:45 -0700
Organization http://groups.google.com
Message-ID <feb852c5-c9aa-439a-94eb-339c5e213ccf@googlegroups.com> (permalink)
References <563f186a-edb3-4311-ae48-3af7decfce2c@googlegroups.com> <qgna285gdrh2ckdr3f7ct2sp9bneaamo94@4ax.com>

Show all headers | View raw


Roedy Green wrote:
> bob smith wrote, quoted or indirectly quoted someone
> who said :
> 
>>	@Override
> >	public int hashCode() {
> >		return 1;
> >	}
> 
> that's about the worst possible hashCode function.

Normally that's correct, but it's conceivable that one might do it for 
some hackish reason. In most situations where one might do such 
an override as this, one would do better not to override hashCode().

> See http://mindprod.com/jgloss/hashcode.html for tips on how to write
> good ones.

The default of assembling it via the mix-in of attribute hash codes 
using the Knuth constants is usually good enough.

h(object) = Sum(i ∈ 0.. n-1) of ( attribute[i] * pow(31, n - 1 - i) );

or 

public static int calculateHash(Foo arg) {
   int h = 0;

   for ( each attribute of Foo that contributes to 'equals()' )
   {
        h = 31 * h + attribute.hashCode();
   }
   return h;
}

http://en.wikipedia.org/wiki/Hash_function
http://en.wikipedia.org/wiki/Java_hashCode()
http://en.wikipedia.org/wiki/Java_hashCode()#Java

-- 
Lew

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