【发布时间】:2019-10-28 18:21:37
【问题描述】:
我有一个包含许多字符串的数组。我想创建一个哈希。首先,我像这里一样对该数组的所有字符串进行哈希处理:
for (int i = 0; i < strings.length(); i++)
{
strings[i] = hash(strings[i]);
}
所以现在我有 1 级的哈希值。如下图所示。有什么算法可以做接下来的步骤吗?我不想制作默克尔树。
【问题讨论】:
-
根据什么逻辑例如hash 01 和 hash 02 是否匹配?
-
这与哈希无关,这是一个关于for循环的问题。在您演示的第一次散列之后,将数组输入另一个 for 循环,该循环一次处理两个元素并输出一个较短的数组。然后重复,直到输出中剩下一个元素。包括你的 for 循环在内的整个过程都可以写成递归函数。
-
你真的需要每个级别的哈希吗?
-
您必须决定元素的位置是否重要,即
{"a", "b",}是否应具有与{"b", "a",}相同的hashCode。接下来,检查提供的方法之一是否符合要求(不考虑是否能够使用它们)。如果你自己滚动,要么选择对称函数来组合值,要么选择不对称函数。 -
为什么不对所有子串串联的字符串进行哈希处理?
标签: java algorithm hash hashmap