hashmap 中重写equals, 但不重写hashcode
时间: 2023-12-26 12:09:40 浏览: 85
的后果是什么?
如果在HashMap中重写equals()方法而不重写hashCode()方法,可能会导致在使用HashMap的其中一个方法,如get()方法时,无法正确找到要找的值。这是因为,如果未重写hashCode()方法,则hashCode()将根据对象的内存地址计算散列码,而不是根据对象的内容。这可能会导致相等的对象具有不同的散列码,因此在HashMap中搜索相等的对象可能会失败。
相关问题
HashMap的重写equals和重写hashCode都之和HashMap的key有关吗
是的,HashMap的重写equals和重写hashCode都和HashMap的key有关。在HashMap中,为了寻找和存储对象,需要使用key 及其hashCode。如果key没有正确实现equals和hashCode方法,会导致HashMap出现错误,比如无法正确查找到key对应的value,或者出现重复的key。因此,正确实现equals和hashCode方法是使用HashMap时很重要的步骤。
hashmap重写hashcode和equals
重写hashCode()和equals()方法是在使用HashMap时非常重要的。hashCode()方法用于确定对象的哈希值,而equals()方法用于比较两个对象是否相等。如果没有重写这两个方法,那么就会使用默认的实现,导致HashMap可能无法正确工作。
阅读全文