<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 閱讀(2594) 評論(0)  編輯  收藏 所屬分類: java

    主站蜘蛛池模板: 国产亚洲成人久久| 日本精品人妻无码免费大全| 免费看男女下面日出水视频| 亚洲中文字幕无码一去台湾| 国内精品免费麻豆网站91麻豆| 91大神亚洲影视在线| 99久久国产免费-99久久国产免费| 亚洲国产精品不卡在线电影| 久久99热精品免费观看动漫| 亚洲av无码潮喷在线观看| 日本一卡精品视频免费| 久久久久亚洲AV无码专区体验| 全部免费毛片在线播放| 亚洲小说区图片区| 毛片视频免费观看| 美女又黄又免费的视频| 亚洲成a人在线看天堂无码| 产传媒61国产免费| 亚洲视频在线一区| 99久久这里只精品国产免费| 亚洲爆乳无码专区www| yy6080久久亚洲精品| a级毛片毛片免费观看久潮| 亚洲综合久久成人69| 欧美最猛性xxxxx免费| 国产成人精品亚洲| 亚洲gv猛男gv无码男同短文| 四虎在线免费视频| 国产亚洲午夜精品| 亚洲AV无码一区东京热久久| 青娱乐免费在线视频| 免费国产黄网站在线观看动图| 亚洲精品成人片在线播放| 五月亭亭免费高清在线| 美女尿口扒开图片免费| 亚洲综合久久综合激情久久| 狠狠久久永久免费观看| a毛片免费播放全部完整| 国产成人精品日本亚洲专| 亚洲精品国产成人影院| 69视频在线观看高清免费|