两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
Posted 上清曲河
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?相关的知识,希望对你有一定的参考价值。
答案是不一定,废话不多说直接上案例:
首先我们先找到两个hashcode值相同但是值不同的两个字符串(其实能找到这些数据就已经能说明我们问题的答案是不一定了)
具体怎么找到的其实网上有很多方法,我具体的参照是根据
https://blog.csdn.net/miranaibuai/article/details/107691043
来尝试了几个字符串,结果:
显而易见,hashcode的值是相同的,但是我们的字符串却是不同的字符串
但是,如果我们在设置字符串的时候我们如果一直把值设置相同,那么我们无论测试几次,它的hashcode都是一样的,所以我们的出的结论是
以上是关于两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?的主要内容,如果未能解决你的问题,请参考以下文章
两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
如果两个对象的哈希码相同则他们不一定相同,如果对象一致则哈希码一定相同
两个对象值相同 (tmp1.equals(tmp2) == true) 但却可有不同的 HashCode 值,这句话有问题吗?