如果不重写hashpre(),则集合将使用Object类中的默认实现。即使根据equals()方法它们相等,此实现也会为不同的对象提供不同的值。
一些集合(例如HashSet,HashMap或HashTable)使用哈希码存储其数据并进行检索。如果您未以一致的方式实现hashpre()和equals(),则它们将无法正常运行。
编辑:
按照Javadoc:Object.hashpre()“通常通过将对象的内部地址转换为整数来实现,但是Java(TM)编程语言不需要这种实现技术”。因此,我建议不要依赖特定的实现。有关实现的实际作用,请参见类似问题的答案。



