特点:

  1. 只要返回数据不存在,则肯定不存在。
  2. 返回数据存在,但只能是大概率存在。
  3. 同时不能清除其中的数据。

java案例

pom引用

  1. <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
  2. <dependency>
  3. <groupId>com.google.guava</groupId>
  4. <artifactId>guava</artifactId>
  5. <version>28.1-jre</version>
  6. </dependency>

测试代码

可能存储的容量:决定存储大小,影响内存空间
可能的错误率:决定计算hash的次数,影响计算速度

  1. BloomFilter<String> bloomFilter = BloomFilter.create(
  2. Funnels.stringFunnel(
  3. Charset.forName("utf-8")),
  4. 1024 * 1024 * 32,
  5. 0.001);
  6. # 添加
  7. bloomFilter.put("123");
  8. # 判断
  9. bloomFilter.mightContain("123");