添加依賴(lài):
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-bloomFilter</artifactId>
<version>5.3.10</version>
</dependency>
循環(huán)10000000次,創(chuàng)建10000000個(gè)9位隨機(jī)數(shù)。使用單機(jī)版布隆過(guò)濾器
public static void main(String[] args) {
BitMapBloomFilter filter = new BitMapBloomFilter(100);
String aa = "";
Set<String> set = new HashSet<String>();
List<String> list = new ArrayList<String>();
for (int i=0;i<10000000;i++){
while (true){
//創(chuàng)建9位的隨機(jī)數(shù)
aa = RandomUtil.randomInt(100000000,999999999)+"";
//如果過(guò)濾器中不存在,就跳出循環(huán)進(jìn)行添加集合
if (!filter.contains(aa)){
break;
}else {
System.out.println("過(guò)濾存在,aa="+aa);
}
}
filter.add(aa);
set.add(aa);
list.add(aa);
}
System.out.println(list.size());
System.out.println(set.size());
}
執(zhí)行結(jié)果如下:

image.png
結(jié)果可見(jiàn),set和list長(zhǎng)度一樣,并且都是長(zhǎng)度都是10000000,說(shuō)明過(guò)濾生效,10000000的數(shù)據(jù)不重復(fù)。