栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

等于和hashCode:Objects.hash方法是否损坏?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

等于和hashCode:Objects.hash方法是否损坏?

实际上,您碰巧触发了纯粹的巧合。:)

Objects.hash
碰巧是通过相继添加每个给定对象的哈希码,然后将结果乘以31来实现的,而
String.hashCode
对每个字符都执行相同的操作。碰巧的是,您所使用的“英语”字符串中的差异与字符串末尾的偏移量恰好比“
Chamorro”字符串中的差异大了一个偏移量,因此所有内容都可以完美抵消。恭喜你!

尝试其他字符串,您可能会发现它可以按预期工作。正如其他人已经指出的那样,严格来说,这种效果实际上并没有错,因为即使哈希码表示的对象不相等,哈希码也可能正确冲突。如果有的话,尝试找到一个更有效的哈希值可能是值得的,但我认为在现实情况下几乎没有必要。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/509076.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号