Java中equals()跟hasCode()的方法详解
Java中equals()和hasCode()的方法详解1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。
Java中equals()和hasCode()的方法详解
1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。
equals()方法在object类中定义如下:
public int hashCode(){ return 1;}//等价于hashcode无效这样做的效果就是在比较哈希码的时候不能进行判断,因为每个对象返回的哈希码都是1,每次都必须要经过比较equals()方法后才能进行判断是否重复,这当然会引起效率的大大降低。
我有一个问题,如果像前面提到的在hashset中判断元素是否重复的必要方法是equals()方法(根据网上找到的观点),但是这里并没有涉及到关于哈希表的问题,可是这个集合却叫hashset,这是为什么??
我想,在hashmap,hashtable中的存储操作,依然遵守上面的准则。所以这里不再多说。
如果大家觉得不足的地方还是多多指教。希望能在探讨中一起进步。