//构造函数 public MyBloomFilter(){ 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; } } }