[转]Bloom Filter

原理在这里: http://www.cnblogs.com/allensun/archive/2011/02/16/1956532.html

构造方法如下:

       /**
	 * 构造Bloom Filter
	 * @param capacity 支持的最大元素数
	 * @param errorRate 期望的最大错误率
	 */
	public LongBloomFilter(int capacity, double errorRate) {
		// 计算实际需要的最小位数组长度m
		size = (int) Math.abs(capacity * Math.log(errorRate)
				/ (Math.log(2) * Math.log(2))) + 1;
		// 计算最优的hash函数个数
		hashNum = (int) (Math.log(2) * ((double) size / capacity));
		
		bitVecter = new BitSet(size);
	}
 

猜你喜欢

转载自ocre.iteye.com/blog/1559296