在hashmap中,如果创建了一个 小明 对象,map.put(“小明”, “18” ),又创建了一个相同的小明对象,再次put(“小明”, “18”)的时候,
因为两个对象都是new出来的对象,所以按照默认hashcode地址算法,得到的hashcode是不同的,而map的存储是hashcode数组和链表,所以放在的不同的hashCode数组位置。
相同的对象,理论应该存储在同一个位置,所以我们需要重写hashcode方法,让他们得到相同的hashcode。
在hashmap中,如果创建了一个 小明 对象,map.put(“小明”, “18” ),又创建了一个相同的小明对象,再次put(“小明”, “18”)的时候,
因为两个对象都是new出来的对象,所以按照默认hashcode地址算法,得到的hashcode是不同的,而map的存储是hashcode数组和链表,所以放在的不同的hashCode数组位置。
相同的对象,理论应该存储在同一个位置,所以我们需要重写hashcode方法,让他们得到相同的hashcode。
本文标题:为什么重写equest就要重写hashCode
本文链接:https://www.haomeiwen.com/subject/pebbzhtx.html
网友评论