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()。

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