布隆过滤器
作用
告诉你某个元素一定不存在或者可能存在,相比于传统的List、Set、Map等数据结构,它更高效、占用的控件更小。
数据结构
布隆过滤器是一个bit向量或者bit,如果我们要映射一个值到布隆过滤器中,我们㤇使用多个不同的哈希函数生成多个哈希值,并将每个生成的哈希值指向的bit位设置为1,如下baidu一词设置了三个位置为1
“tencent”一词,对应的情况
可以看到,不同的词对应的bit位置可能相同,当词很多的情况时,可能大部分bit位置都是1,这时查询taobao可能对应的位置都为1,只能说明taobao一词可能存在,不是一定存在的。
使用布隆过滤器
导入依赖
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>