但随着处理的数据越来越多,HashSet 的大小也会越来越大,还是存在内存溢出的风险。Bloom Filter解法针对上述问题,我们可以考虑使用Bloom Filter这种空间效率极高的概率数据结构。...Bloom Filter本质是一个很长的二进制向量和一系列随机映射函数。对每个元素,通过映射函数将其映射到二进制向量的不同位,并将其置为1。查询时也通过相同的映射函数,查看相应位是否都是1。...利点是只需要一个二进制向量即可表示一个集合,不需要存储元素本身。并可以实现间隔查询,不需要对集合进行遍历。理论上,2.5亿个元素只需要225MB的Bloom Filter,远小于元素本身的内存占用。...二次遍历时只检查元素是否在Bloom Filter中,而不需要加载集合本身。总结对于内存无法容纳的超大数据集,使用Bloom Filter可以实现高效地去重和查询。...对于更复杂的业务场景,例如需要统计不同数字的频数,可以考虑使用Count-Min Sketch这种数据流统计算法。它使用多个哈希函数在多行计数器上统计频数,可以容忍一定程度的 hash 冲突。