热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

hashCode()返回负值的字符串

如何解决《hashCode()返回负值的字符串》经验,为你挑选了1个好方法。

"random".hashCode()返回值-938285885.是否预期负值hashCode()

根据以下问题,有一种方法hashCode()可以计算字符串,但是使用它,随着字符串长度的增加,值不会继续增加,最终会大于Integer.MAX_VALUE



1> Jon Skeet..:

是否期望hashCode()的负值?

它们完全有效,是的.

随着字符串长度的增加并且最终大于Integer.MAX_VALUE,值是否会不断增加?

是什么让你认为哈希码随着字符串长度的增加而增加?

基本上,您应该将哈希码视为指纹 - 位的集合而不是具有有意义的数量的数字.散列码计算经常上溢或下溢,这绝对没问题."更多"或"更少"是哈希码之间的无关比较 - 所有相关的都是"相等"或"不相等",其中规则是两个相等值的哈希码必须相等,但哈希码为两个非哈希码- 等值可能仍然相等.数值在分段方面是相关的,但这通常是使用它们的任何实现细节.

哈希码只是查找绝对不相等的值的快速方法.因此,考虑一种情况,我有一组带有哈希码{1,-15,20,5,100}的字符串.如果给我一个哈希码为14的字符串,我知道字符串肯定不在集合中.如果给我一个哈希码为20的字符串,我需要用equals我的集合中的字符串检查它,哈希码为20,以查看候选字符串是否在集合中.


推荐阅读
author-avatar
叶斯琪147-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有