<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

    主站蜘蛛池模板: 亚洲国产精品SSS在线观看AV | 亚洲色偷偷综合亚洲av78| 亚洲视频在线免费| 嫩草影院免费观看| 亚洲免费在线观看视频| 三级网站在线免费观看| 免费在线观看一区| 色婷婷六月亚洲综合香蕉| 亚洲精品日韩专区silk| 亚洲AV成人一区二区三区AV| 亚洲黄片手机免费观看| 四虎在线免费播放| 少妇高潮太爽了在线观看免费| 久草福利资源网站免费| 成人无码视频97免费| 又硬又粗又长又爽免费看 | 三年片在线观看免费观看大全一| www成人免费视频| 国产成人亚洲精品蜜芽影院| 亚洲熟女综合一区二区三区| 亚洲一区免费视频| 亚洲国产综合自在线另类| 亚洲精品成人图区| 亚洲综合男人的天堂色婷婷| 亚洲av无码专区国产乱码在线观看| 国产亚洲精品福利在线无卡一| 亚洲国产日韩在线观频| 亚洲国产精品嫩草影院久久| 免费播放春色aⅴ视频| 免费亚洲视频在线观看| 免费看国产一级片| 亚洲M码 欧洲S码SSS222| 亚洲AV无码一区二区三区国产| 免费在线一级毛片| 亚洲精品99久久久久中文字幕| 亚洲色一色噜一噜噜噜| 中文字幕精品亚洲无线码一区 | 久久久久久毛片免费看 | 亚洲男人天堂av| 99人中文字幕亚洲区| 亚洲精品视频在线观看免费|