<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 | 女人被免费视频网站| 久久久久亚洲AV无码网站| 99久久免费中文字幕精品| 亚洲黄色免费电影| 国产在线观看免费观看不卡| 亚洲av成人综合网| AV免费网址在线观看| 亚洲AV第一成肉网| 亚洲国产综合人成综合网站| 免费看又黄又爽又猛的视频软件| 亚洲一级片内射网站在线观看| 久久免费视频一区| 久久夜色精品国产噜噜噜亚洲AV| 精品国产污污免费网站aⅴ | 亚洲网站免费观看| www.黄色免费网站| 亚洲日韩在线中文字幕综合| 亚洲精品成人在线| 免费在线中文日本| 香蕉大伊亚洲人在线观看| 全黄a免费一级毛片人人爱| 中文字幕在线免费看| 久久久亚洲欧洲日产国码二区| 日韩亚洲国产高清免费视频| 亚洲av午夜电影在线观看 | 久久久久亚洲AV无码专区首JN| 青娱分类视频精品免费2| 羞羞视频免费网站入口| 国产亚洲精品a在线无码| 色se01短视频永久免费| 色视频在线观看免费| 亚洲av无码av制服另类专区| 毛片网站免费在线观看| 一级做受视频免费是看美女| 亚洲精品亚洲人成在线观看麻豆 | 成人性生交大片免费看午夜a| 一区二区免费在线观看| 久久亚洲AV成人无码电影| 亚洲AV成人潮喷综合网|