hashcode经过散列存储对象地址,如果用取余函数,假设散列表有8个 ,分别是1~8 ,地址若是9,存储在1中,17也存储在1中,再经过equal比较是否是同一对象 所以重写equal要重写hashcode
为什么必须要重写hashcode方法,其实简单的说就是为了保证同一个对象,保证在equals相同的情况下hashcode值必定相同,如果重写了equals而未重写hashcode方法,可能就会出现两个没有关系的对象equals相同的
本文共 275 字,大约阅读时间需要 1 分钟。
hashcode经过散列存储对象地址,如果用取余函数,假设散列表有8个 ,分别是1~8 ,地址若是9,存储在1中,17也存储在1中,再经过equal比较是否是同一对象 所以重写equal要重写hashcode
为什么必须要重写hashcode方法,其实简单的说就是为了保证同一个对象,保证在equals相同的情况下hashcode值必定相同,如果重写了equals而未重写hashcode方法,可能就会出现两个没有关系的对象equals相同的
转载于:https://www.cnblogs.com/zhang-123/p/10626024.html