日期:2014-05-20  浏览次数:20641 次

两个对象值相同(x.equals(y) == true),也有相同的hash code,这是为什么???
我的理解 hash code 就是对象的ID值.

------解决方案--------------------
这是约定。
------解决方案--------------------
看一下hashset里面的具体应用就明白了。
------解决方案--------------------
hash code 是通过计算出来的 

并不是简单的ID
------解决方案--------------------
Hash,一般翻译做“散列”,也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。 

数学表述为:h = H(M) ,其中H( )--单向散列函数,M--任意长度明文,h--固定长度散列值。


MD5 就是典型的hash 的应用
------解决方案--------------------
hashcode 不是ID值..

是根据对象hash出来的..两个一样的对象. 内容相同. 算法不变..hash出来的值肯定就一样.