【发布时间】:2016-03-18 07:43:05
【问题描述】:
在HashMap中,当我们输入一个对象时,它会计算key的hashCode然后去它指向的桶。如果存储桶已经包含另一个具有相同键的对象,但值不同。它是否应该重载 equal() 方法以及如何重载?请帮忙
【问题讨论】:
-
您的问题是什么?重写这些库,制作另一个库?您也可以阅读源代码...
-
如果地图已经包含该键的值,则新值将替换与该键关联的旧值。记录在案:docs.oracle.com/javase/8/docs/api/java/util/Map.html#put-K-V-
-
你能解释一下我们如何覆盖HashMap中的hashCode()和equals()吗?
-
您不要在 HashMap 中覆盖这些方法。如果您希望将其用作 HashMap 的键,并且两个不同的实例可以相等,则可以在您的类中覆盖这些方法。
-
所以如果两个不同的键给出相同的 hashCode 那么会发生什么?
标签: java collections hashmap equals hashcode