为什么重写了equals方法后,还要重写hashcode方法

1.重写了equals之后还要重写hashcode方法,是为了map,set集合等类型的使用.①:map和set必须保证对象的唯一.②:集合类判断对象是否相等,是先比较equals是否相等,如果相等则返回true.还要继续判断hashcode返回值是否为true,只有两者都为true,则认为两个对象相等.

2.由于object的hashcode返回的是hash值,即使equals返回的是true,集合也有可能两个对象不相等,所有必须重写hashcode方法

你可能感兴趣的:(java)