hasecode和equals方法 爲啥重寫equals方法的時候需要重寫hashcode方法

hashcode的作用:

hasecode 目的是存在散列表中。

以hashset爲例,hashcode 是作爲一個指針存在  爲key -value的value 確定是否存在和位置index,hasecode本身也是一個int值,當新數據插入hashset散列表的時候。首先會判斷hashcode值如果當前value值hashcode一致在進行equals方法調用。這樣做的目的是減少equals方法的調用次數。提高新值插入效率。

 

以上方式如果調用的equals方法後說明ashcode值相同的情況,所以hashcode方法也需要重寫一次(調用一次)。

對比分析

1、兩個對象hashcode值相同不一定相等。

2、兩個對象相等hashcode值一定相同。

3、兩個對象相等equles方法返回true

hashcode作用是對象在對象在堆內存地址的特定指向值。判斷對象相等先判斷的肯定是hashcode值 ,hahcode值相等了才判斷堆內存對象值。所以只要調用equles方法(重寫了equles方法)必現重寫hashcode方法。提高效率。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章