我有三个领域,即
我试图在Java中编写一个函数,为上述字段返回唯一的哈希值( 长期需要是hash的返回类型 )。然后,此哈希将用于在HashSet中存储与上述字段相对应的数据库行。我是编写哈希码函数的新手,有人可以复习一下我的内容。
public class HashCode { private long Number1; private long Number2; String Time; public HashCode(long Number1, long Number2, String Time){ this.Number1 = Number1; this.Number2 = Number2; this.Time = Time; } public long getHashCode() { long hash = 3; hash = 47 * hash + (long) (this.Number1 ^ (this.Number1 >>> 32)); hash = 47 * hash + (long) (this.Number2 ^ (this.Number2 >>> 32)); hash = 47 * hash + (this.Time != null ? this.Time.hashCode() : 0); return hash; } }
我认为这是hashCode的特殊版本。否则,您将需要覆盖hashCode,不要定义新方法。诸如此类的容器HashSet不会获得您自己的哈希码。
hashCode
HashSet
long
(顺便说一句,成员应以较低的字母称呼,并且也Time应该是私人的。)
Time