是否可以将hashCode用作内容唯一ID?

问题描述 投票:0回答:1

我需要比较两个大字符串。而不是使用类似的equals方法,有没有类似hashCode或为String生成唯一ID的方法?那是因为我的弦很大。另外,我需要独特的内容唯一ID。我是否可以在String中使用hashCode

java hashcode hash-code-uniqueness
1个回答
0
投票

hashCode的目的是提供一种quick方式,用于识别两个对象比较不相等的情况的most。在大多数情况下,具有1%误报率的哈希函数将被认为比具有0%误报率的哈希函数高,但所需时间要长两倍。

有一些散列函数被设计为用作“摘要”,因此,任意长度的两个不同字符串将非常具有相同的摘要。为了非常有效,摘要必须比32位哈希码值大得多。设计良好的64字节(512位)摘要通常足以保护任何长度的字符串,以至于一个周末赢得五张州彩票比发现两张更容易被同一周的两次闪电击中。产生相同摘要的不同字符串。为一个字符串计算一个好的摘要函数的成本要比将一个字符串与另一个字符串进行比较的成本大得多,但是如果将每个字符串与许多其他字符串进行比较,则计算每个摘要函数一次并将其与每个字符串的摘要进行比较其他弦可能会带来重大的演奏胜利。

© www.soinside.com 2019 - 2024. All rights reserved.