hashcode相等两个类一定相等吗?equals呢?相反呢?

hashCode相等,equals也不一定相等, 两个类也不一定相等

equals相同, 说明是同一个对象, 那么hashCode一定相同

 

哈希表是结合了直接寻址和链式寻址两种方式,所需要的就是将需要加入哈希表的数据首先计算哈希值,其实就是预先分个组,然后再将数据挂到分组后的链表后面,随着添加的数据越来越多,分组链上会挂接更多的数据,同一个分组链上的数据必定具有相同的哈希值,java中的hash函数返回的是int类型的,也就是说,最多允许存在2^32个分组,也是有限的,所以出现相同的哈希码就不稀奇了

 

重名的人很多, 名字相同, 但不是同一个人, hashCode就是名字, 人就是对象

 

参考: https://blog.csdn.net/weixin_39532479/article/details/79814516

posted @ 2018-11-20 10:37  弓长张&木子李  阅读(4367)  评论(1编辑  收藏  举报