首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在字符串上生成唯一的整数/长哈希键,以实现更快的比较

在字符串上生成唯一的整数/长哈希键,以实现更快的比较
EN

Stack Overflow用户
提问于 2009-07-02 16:06:43
回答 10查看 10.9K关注 0票数 26

我很好奇其他人是如何解决这个问题的,以及天真的解决方案背后可能潜藏着什么问题:

我有一个处理股票市场数据的系统。有数以万计的符号,以及相关的价格/大小,以每毫秒几千的速度流入系统。

在每个节拍上需要进行的基本操作之一是字符串比较,以查看传入的符号是否与我们感兴趣的符号匹配。在如此高的频率下,这些字符串比较的优化可以在整个系统的性能中产生可测量的差异。

我正在考虑生成符号字符串的散列,并将其与记录一起存储。对于随后的比较,系统应该使用这个散列(如果是int或long,比较应该是单个操作,而不是遍历字符串的每个字符,直到发现不匹配)。

让我们忽略生成散列本身的成本(实际上,这可能是令人望而却步的)。我能看到的唯一问题是,对于大量的唯一符号,散列冲突(两个单独的符号生成相同的散列)将是灾难性的。有没有一种散列算法可以保证匹配特定约束(比如字符数限制)的字符串是唯一的?

编辑:我将用Java编写这段代码。不确定hashCode的(碰撞)质量或计算速度。

EN

Stack Overflow用户

发布于 2009-07-02 16:12:24

你应该考虑使用Perfect hash function,我认为它符合你的要求

票数 4
EN
查看全部 10 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1075250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档