Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala中字符串的64位(长)哈希_Scala_Hash_String Hashing - Fatal编程技术网

Scala中字符串的64位(长)哈希

Scala中字符串的64位(长)哈希,scala,hash,string-hashing,Scala,Hash,String Hashing,我需要一个生成long的统一字符串散列,用于bloom过滤器。我在哪里可以找到这方面的算法或库?谢谢。您可以做String.hashCode所做的事情,只需使用long: val code = string.foldLeft(0L) { case (code, c) => 31*code + c } 我不太熟悉散列,这能确保在整个长值范围内均匀分布吗?我不明白为什么不能,除非字符串非常短(比如短于10个字符)。。。在这种情况下,直接存储它们而不是散列可能是有意义的。

我需要一个生成long的统一字符串散列,用于bloom过滤器。我在哪里可以找到这方面的算法或库?谢谢。

您可以做
String.hashCode
所做的事情,只需使用long:

 val code = string.foldLeft(0L) { case (code, c) => 31*code + c }

我不太熟悉散列,这能确保在整个长值范围内均匀分布吗?我不明白为什么不能,除非字符串非常短(比如短于10个字符)。。。在这种情况下,直接存储它们而不是散列可能是有意义的。