基于hutool实现单机版布隆过滤器

添加依赖:

<dependency>
      <groupId>cn.hutool</groupId>
      <artifactId>hutool-bloomFilter</artifactId>
      <version>5.3.10</version>
</dependency>

循环10000000次,创建10000000个9位随机数。使用单机版布隆过滤器

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){
                //创建9位的随机数
                aa = RandomUtil.randomInt(100000000,999999999)+"";
                //如果过滤器中不存在,就跳出循环进行添加集合
                if (!filter.contains(aa)){
                    break;
                }else {
                    System.out.println("过滤存在,aa="+aa);
                }
            }
            filter.add(aa);
            set.add(aa);
            list.add(aa);
        }
        System.out.println(list.size());
        System.out.println(set.size());
    }

执行结果如下:


image.png

结果可见,set和list长度一样,并且都是长度都是10000000,说明过滤生效,10000000的数据不重复。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。