Java基礎篇---hashCode()和equals()的關係

1. hashCode()和equals()的關係:  

    a. hashCode()的作用是計算出哈希值。    

    在哈希表中,存儲的是key-value對象,通過對key-value對象進行哈希運算得到哈希值,找到其在哈希表中對應的索引位置。如果對應的索引位置上已經有存儲對象時,再判斷兩個對象是否相等,如果相等則不插入對象,不相等則產生哈希衝突

    b. 在java中,hashCode()只在創建HashMap、HashSet、HashTable等哈希表數據結構時,纔有作用,纔會跟equals()扯上關係。  

    c. 對於兩個相等的對象(equals()返回true),其hashCode()得到的結果一定相等。但反過來則不一定相等。  

    d. hashCode()和equals()是Object中的方法,hashCode()默認的實現是計算對象堆上數據的哈希值,當override equals()時,也應該override hashCode()。

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