Guava BloomFilter

1
2
3
4
5
6
7
8
9
int expectedInsertions = 100_0000; // 预估数据量
double fpp = 0.0001; // 期望的误差率 0.01%
BloomFilter<String> bloomFilter = BloomFilter.create(Funnels.stringFunnel(Charset.forName("UTF-8")), expectedInsertions, fpp);

bloomFilter.put("hello world!");

// 判断是否存在,false则表示一定不存在; true表示可能存在
boolean ans = bloomFilter.mightContain("hello world!");
System.out.println(ans);

资料
十亿数据如何去重,红黑树到hash再到布隆过滤器
Google Guava 中布隆过滤器的介绍和使用
Bloom Filter Calculator
Bloom Filter Calculator