java ==和equals的区别 为什么要同时实现hashCode和equals?
为什么要同时实现hashCode和equals?1. 重写equals方法时,需要重写hashcode方法,主要用于map、set等集合类型;TA:map、set等集合类型中存储的对象必须唯一;要判断
为什么要同时实现hashCode和equals?
1. 重写equals方法时,需要重写hashcode方法,主要用于map、set等集合类型;TA:map、set等集合类型中存储的对象必须唯一;要判断两个对象是否相等,集合类首先判断equals是否相等。如果equals返回true,则还判断hashcode的返回值是否为true。只有当两者都返回true时,才能认为这两个对象相等。T2。因为对象的hashcode返回对象的hash值,所以即使equals返回true,集合也可能确定两个对象不相等。因此,必须重写hashcode方法,以确保当equals返回true时,hashcode也返回true,这样存储在集合中的对象就可以是唯一的。