hashCode返回对象的hash值,是一个int类型,通常用于hash类的集合,如hashMap、hashSet,集合用hash值使对象分配在hash表的指定位置。不同的对象可能拥有相同的hash值,在集合中,这叫哈希冲突。在查找集合元素的时候,如果只用equals()进行比较,需要一个一个进行比较,速度很慢,所以先匹配对象的hash值,再来遍历查找对象。java也规范了:用equals()方法判断相等的两个对象,hashCode必须相同。所以需要同时重写equals()和hashCode()。
为什么需要同时重写hashCode和equals
最新推荐文章于 2022-07-18 21:48:34 发布