【发布时间】:2021-05-20 02:22:46
【问题描述】:
我需要一些帮助以从理论上更好地理解 hashCode() 方法。我读过(强调我的):
当
hashCode()在两个单独的对象上调用时(根据equals()方法它们相等),它返回相同的哈希码值。 但是,如果在两个不相等的对象上调用它,它不一定会返回不同的整数值。
所说的异常在哪里发生?
【问题讨论】:
-
Apple.hashCode() != Banana.hashCode() -
我的问题更专注于问题的第二段,其中指出:不同的对象在某些条件下可以具有相同的 hashCode()。 (如果我理解正确的话)。
-
是的,这就是所谓的碰撞。您可以查看 HashMap 冲突,例如stackoverflow.com/questions/19691920/…