gpt4 book ai didi

java - 获取 String 的 int 表示

转载 作者:搜寻专家 更新时间:2023-10-31 08:05:18 26 4
gpt4 key购买 nike

我正在寻找一种方法来创建任意字母数字字符串的 int\long 表示形式。哈希码不会这样做,因为我无法承受哈希冲突,即表示必须是唯一且可重复的。

数字表示将用于执行高效(希望)比较。创建数字键需要一些时间,但它只需要发生一次,而我需要与它进行大量比较——这有望比比较原始字符串快得多。

关于更快的字符串比较的任何其他想法也将受到高度赞赏...

最佳答案

除非您的字符串长度有限,否则您无法避免碰撞。

整数 (2^32) 有 4294967296 个可能值。如果您有超过 4 个 ASCII 字符或超过两个 unicode 字符的字符串,则可能的字符串值多于可能的整数值。您不能为每个可能的 5 个字符的字符串设置唯一的整数值。长值有更多可能的值,但它们只会为每个可能的 8 个 ASCII 字符字符串提供唯一值。

哈希码作为一个两步过程很有用:首先查看哈希码是否匹配,然后检查整个字符串。对于大多数不匹配的字符串,只需要第一步,速度非常快。

关于java - 获取 String 的 int 表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com