美文网首页
hashCode和equals

hashCode和equals

作者: Veteor | 来源:发表于2016-09-25 00:09 被阅读0次

    1、默认的Object.equals()只是比较对象的地址是否相等。

    2、hashCode()方法来返回每个Java对象的哈希码。hashCode和地址不同

    3、equals()相等的两个对象,hashcode()一定相等,equals()不相等的两个对象,却并不能证明他们的hashcode()不相等。

    4、Java系统首先调用对象的hashCode()方法获得该对象的哈希码表,然后根据哈希码找到相应的存储区域,最后取得该存储区域内的每个元素与该对象进行equals方法比较

    5、当我们重写一个对象的equals方法,就必须重写他的hashCode方法,不过不重写他的hashCode方法的话,Object对象中的hashCode方法始终返回的是一个对象的hash地址,而这个地址是永远不相等的。

    例如:像商场的的衣服,每个衣架子上好几件衣服,衣服所在的架子相当于一个hashCode,要找某件衣服只要知道他的衣架编号,定位衣架后在使用equals去和衣架上的衣服比较

    相关文章

      网友评论

          本文标题:hashCode和equals

          本文链接:https://www.haomeiwen.com/subject/fsbaettx.html