<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    stone2083

    布隆過濾器(BloomFilter)

    資料:
    wikipedia--bloom filter

    使用場景,原理簡介之中文資料:
    數學之美系列二十一 - 布隆過濾器(Bloom Filter)

    核心內容(摘自Google黑板報文章內容):


    BloomFilter簡易實現:
    public class SimpleBloomFilter {

        
    private static final int   DEFAULT_SIZE = 2 << 24;
        
    private static final int[] seeds        = new int[] { 71113313761, };

        
    private BitSet             bits         = new BitSet(DEFAULT_SIZE);
        
    private SimpleHash[]       func         = new SimpleHash[seeds.length];

        
    public static void main(String[] args) {
            String value 
    = "stone2083@yahoo.cn";
            SimpleBloomFilter filter 
    = new SimpleBloomFilter();
            System.out.println(filter.contains(value));
            filter.add(value);
            System.out.println(filter.contains(value));
        }

        
    public SimpleBloomFilter() {
            
    for (int i = 0; i < seeds.length; i++) {
                func[i] 
    = new SimpleHash(DEFAULT_SIZE, seeds[i]);
            }
        }

        
    public void add(String value) {
            
    for (SimpleHash f : func) {
                bits.set(f.hash(value), 
    true);
            }
        }

        
    public boolean contains(String value) {
            
    if (value == null) {
                
    return false;
            }
            
    boolean ret = true;
            
    for (SimpleHash f : func) {
                ret 
    = ret && bits.get(f.hash(value));
            }
            
    return ret;
        }

        
    public static class SimpleHash {

            
    private int cap;
            
    private int seed;

            
    public SimpleHash(int cap, int seed) {
                
    this.cap = cap;
                
    this.seed = seed;
            }

            
    public int hash(String value) {
                
    int result = 0;
                
    int len = value.length();
                
    for (int i = 0; i < len; i++) {
                    result 
    = seed * result + value.charAt(i);
                }
                
    return (cap - 1& result;
            }

        }

    }



    posted on 2010-01-30 15:00 stone2083 閱讀(2585) 評論(0)  編輯  收藏 所屬分類: java

    主站蜘蛛池模板: 激情无码亚洲一区二区三区 | 国产2021精品视频免费播放| igao激情在线视频免费| 一级中文字幕乱码免费| 久久免费观看国产精品| 亚洲网站在线免费观看| 国产伦精品一区二区三区免费下载| 亚洲午夜AV无码专区在线播放| 亚洲国产精品免费视频| 色偷偷女男人的天堂亚洲网| 老牛精品亚洲成av人片| 日韩免费无码一区二区视频| 久久久久久久综合日本亚洲| 亚洲精品国产日韩| 国产在线观看免费视频软件| 国产精品爱啪在线线免费观看| 亚洲区日韩区无码区| 亚洲最大福利视频| 在线播放免费播放av片| 国产精品亚洲αv天堂无码| 2022国内精品免费福利视频| 国产亚洲精品久久久久秋霞 | 亚洲日韩精品无码专区加勒比| 中文字幕无线码中文字幕免费| 毛片免费全部播放一级| 亚洲国产精品久久久久婷婷老年| 午夜视频免费在线观看| 亚洲伦乱亚洲h视频| 中文字幕在线观看免费| 久久丫精品国产亚洲av| 免费h视频在线观看| 亚洲熟妇中文字幕五十中出| 久久亚洲精品高潮综合色a片| 国产精品入口麻豆免费观看| 亚洲熟妇av午夜无码不卡| 99re热免费精品视频观看| 亚洲人成在线电影| 精品少妇人妻AV免费久久洗澡| 91嫩草亚洲精品| 久久一区二区三区免费播放| 亚洲人成小说网站色|