1 编程中经常会用到HashMap,HashSet数据结构。
2 这个数据结构都是由键值对组成的,如果键值对是对象,那么程序会根据对象返回的hashCode来确定值所在的位置。
3 我们通常认为两个相同内容的对象是相等的,并通过重写equals方法来达到目的。
4 由于对象默认返回hashcode是对象的地址值,当我们把上面相等的对象作为HashMap的键时候,会发现程序会定位到两个不同的位置的值,这种结果是不合适的。
5 这也就是为什么在重写equals方法的时候,往往需要重写hashCode,让相等的对象返回相同的hashCode的原因。
网友评论