gpt4 book ai didi

java - 如何为一个巨大的字符串列表计算一个好的哈希码?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:02:47 25 4
gpt4 key购买 nike

一次性根据这些字符串的值计算哈希码的最佳方法是什么?

好的,我的意思是它需要:

1 - 快速:我需要获取大量短字符串列表(10^3..10^8 项)的哈希码。

2 - 识别整个数据列表如此多的列表可能只有几个不同的字符串必须有不同的哈希码

如何用 Java 实现?

也许有一种方法可以使用现有的字符串哈希码,但是如何合并为单独的字符串计算的许多哈希码?

谢谢。

最佳答案

为您的字符串创建一个占位符类,然后使用 CRC32 class .它简单快速:

import java.util.zip.CRC32;

public class HugeStringCollection {
private Collection<String> strings;

public HugeStringCollection(Collection<String> strings) {
this.strings = strings;
}

public int hashCode() {
CRC32 crc = new CRC32();
for(String string : strings) {
crc.update(string.getBytes())
}

return (int)( crc.getValue() );
}
}

如果集合本身是不可变的,您可以计算一次哈希并将其存储以供后期重用。

关于java - 如何为一个巨大的字符串列表计算一个好的哈希码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638411/

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