两个对象的hashcode相同 hashCode相同,却不相等?
浏览量:2537
时间:2021-03-18 06:25:13
作者:admin
hashCode相同,却不相等?
首先,hashcode是相同的,表示相同的内存地址。Hashcode是一种根据对象属性的定义来判断对象是否相同的方法。如果hashcode相同,equal确定两个对象相同,即内存地址相同。
如果两个对象相同,那么它们的hashCode值一定要相同?
如果两个对象具有相同的值(x.equals(y)==true),则它们必须具有相同的哈希代码。Hash,一般翻译为“Hash”,也直接音译为“Hash”,是通过Hash算法将任意长度的输入(也称为预映像)转换成固定长度的输出,输出为Hash值。这种变换是一种压缩映射,即散列值的空间通常比输入的空间小得多,不同的输入可能被散列到同一个输出中,不可能从散列值中唯一地确定输入值。
1)如果对象相等,则哈希码必须相等;
2)如果哈希码相等,则对象可能不相等。
字符串hashcode是唯一的吗?
结论:不是唯一的
原因:hashcode是一个整数值,取值范围可以确定,而且字符串的个数是无限的,所以必须有两个具有相同hashcode的字符串
两个对象的hashcode相同 hashcode是什么 hashcode相同的字符串
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。