基于hutool實(shí)現(xiàn)單機(jī)版布隆過(guò)濾器

添加依賴(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ù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容