不同类的哈希码冲突

Mat*_*tRS 0 java

我有两个围绕Integer字段的简单包装类,我必须覆盖equals()和hashCode().最后,它们都对hashCode()使用相同的算法,因此如果Integer字段相同,则哈希码会发生冲突.

由于对象是不同的类型,这是否重要,或者我应该只关心我是否希望将它们作为键混合在同一个HashMap中?

dle*_*lev 13

hashCode()对于两个物体是平等的说" 这些物体有可能是平等的,通过调用来仔细观察equals()".只要equals()这些类的方法是正确的,哈希码是相同的不是问题.

一般规则hashCode()是,如果两个对象相等,则它们的哈希码也应该相等.请注意,规则不是"如果两个对象具有相同的哈希码,那么它们应该相等".