zoukankan      html  css  js  c++  java
  • 布隆过滤器应用DEMO

    引入jar包

    <dependency>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
          <version>21.0</version>
        </dependency>

    代码示例:

     1 public class BloomFilterDemo {
     2     private static final int insertions = 1000000;
     3 
     4     public static void main(String[] args) {
     5         //初始化一个存储string的布隆过滤器,初始大小100w 默认误判率是0.03
     6         BloomFilter<String> bf = BloomFilter.create(Funnels.stringFunnel(UTF_8), insertions,0.01);
     7         //用于存放所有实际存在的key,判断key是否存在
     8         Set<String> sets = new HashSet<>();
     9         //用于存放所有实际存在的key,可以取出使用
    10         List<String> list = new ArrayList<>(insertions);
    11         //向三个容器初始化100w个随机并且唯一的字符串
    12         for (int i = 0; i < insertions; i++) {
    13             String uuid = UUID.randomUUID().toString();
    14             bf.put(uuid);
    15             sets.add(uuid);
    16             list.add(uuid);
    17         }
    18 
    19         int right = 0;//正确判断的次数
    20         int wrong = 0;//错误判断的次数
    21         for (int i = 0; i < 10000; i++) {
    22             String data = i % 100 == 0 ? list.get(i / 100) : UUID.randomUUID().toString();
    23             if (bf.mightContain(data)) {
    24                 if (sets.contains(data)){
    25                     // 判断实际存在
    26                     right++;
    27                     continue;
    28                 }
    29                 //布隆过滤器判断存在,但实际不存在
    30                 wrong++;
    31             }
    32         }
    33         float percent = (float)wrong / 9900;
    34         System.out.println("100个实际存在的元素,判断存在的:" + right);
    35         System.out.println("9900个实际不存在的元素,误认为存在的:" + wrong + ",误判率:" + percent);
    36     }
    37 }

    输出结果:

    100个实际存在的元素,判断存在的:100
    9900个实际不存在的元素,误认为存在的:97,误判率:0.00979798
  • 相关阅读:
    CodeForces
    HihoCoder
    HihoCoder
    CodeForces
    CodeForces
    CodeForces
    HihoCoder
    HihoCoder
    CodeForces
    HihoCoder
  • 原文地址:https://www.cnblogs.com/chinano1/p/10016368.html
Copyright © 2011-2022 走看看