首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

算法的Java兑现

2012-11-03 
算法的Java实现引用:http://www.java3z.com/cwbwebhome/article/article5/51296.html?id3438 public clas

算法的Java实现

引用:http://www.java3z.com/cwbwebhome/article/article5/51296.html?id=3438 
public class  SimpleBloomFilter {    private static final  int  DEFAULT_SIZE  = 14 ;    private static final  int [] seeds =new  int []{5};    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;       }   }            }   

?

热点排行