一. 布隆过滤器的原理
- 使用一个Bit Array,不断将到来的key通过一个hash函数散列到这个bitArray中。
- 然后就可以使用这个bitArray比较新来到的key散列后是否能够映射到这个bitArray为1的位。
这里提出一个小问题:第二步中如何具体比较?
我的想法是:可以将新key的散列值与bitarray&操作,得到的结果如果与bitarry相同即为能够映射。
二. 扩展
将布隆过滤器变形,判断两个list是否据有包含关系(不一定准确,但一定能判断出不包含)
举例: 我们要判断list A是否包含B。
- 我们将list A的元素全部散列到bitArray A中。
- 将list B的元素全部散列到bitArray B中。
- bitArray A与bitArray B 进行&操作,得到结果如果与bitArray A完全相同,即A包含B。