作者:fedfedfv_249 | 来源:互联网 | 2022-10-22 16:22
我看到Java中的HashSet在内部使用HashMap来检查HashSet是否包含元素。它不能仅使用位图来存储字符串的所有哈希结果。例如。字符串abc散列为12索引,我们可以设置该索引以表明它存在。与HashMap相比,它将节省大量空间,因为我们不必在数据中存储实际的键。
1> Sean Patrick..:
如果HashSet仅用于contains()查找,则可能可以进行类似的优化。这仍然很危险,因为哈希冲突总是会发生。我认为您正在寻找的是布隆过滤器(请注意,布隆过滤器没有给出确切的答案,只是排除了误报)。
哈希集是一个集合,一个集合需要有可能检索存储的值。散列不可逆,您无法根据其散列计算原始字符串。