实现类似方法的最快和更健壮(就唯一性而言)的方法是什么
public abstract String hash(String[] values);
该values[]
数组有 100 到 1,000 个成员,每个成员都有几十个字符,并且该方法每次需要在不同的values[]
数组上运行大约 10,000 次/秒。
应该使用StringBuilder
缓冲区构建长字符串,然后在缓冲区内容上调用哈希方法,还是继续为每个字符串调用哈希方法更好values[]
?
显然,需要至少 64 位的散列(例如,MD5)来避免冲突,但是有没有什么更简单、更快的方法可以在相同的质量下完成?
例如,关于
public String hash(String[] values)
{
long result = 0;
for (String v:values)
{
result += v.hashCode();
}
return String.valueOf(result);
}