JAVA 两个对象不同为什么他们的hashcode有可能相同

2025-02-24 00:36:58
推荐回答(1个)
回答1:

  1. hashCode方法是Object的方法  你是可以在任何子类里面复写的(java所有类均继承Object)  如果手动设置  return “1”  那就会相同

  2.  hashCode只是特征编码   更像是摘要(MD5理解吗?大概差不多)  就是用比较少的字符组合描述复杂的东西  这样一定会重复的  比如用长度为3的字符串去表述长度为6 的字符串就会产生重复
    可能的排列只有

        123  132 213 231 312 321

 

        而长度为6 的字符串的排列组合就很多  所以一定会出现某几个6为字符串对应的 3位字符串相等的情况   hashCode就是这种  (你是初学者 只能这么简单的说了 )  事实上hashCode原理更复杂些