所谓hash,就是对于任意一个指定的输入,给出一个整数。一个好的hash应该对于不同的输入很少有重复。仅此而已了,其实你也可以就让他返回一个固定的值,但是没有什么意义。

解决方案 »

  1.   

    HashCode()方法通过运用对象的内容执行一个哈希函数来生成一个int值。Hashtable和HashMap用这个值来算出一对key/value位于哪个bucket(哈希元)(或列表)中。String.hashCode()在一个字符串上运行哈希函数。字符串中每个字符的数字代码都乘以31,结果取决于字符串中字符的位置。然后将这些计算的结果相加,得到一个总数。这个过程似乎很复杂,但是它确保能够更好地分布值。它也证明了你在开发你自己的hashCode()方法时,能够走多远,确信结果是唯一的。