mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
add opt
This commit is contained in:
@@ -13,35 +13,36 @@ import cn.hutool.core.util.NumberUtil;
|
||||
* 2.散列hash映射到数组的bit位置 <br>
|
||||
* 3.验证<br>
|
||||
* 此实现方式可以指定Hash算法
|
||||
*
|
||||
*
|
||||
* @author Ansj
|
||||
*/
|
||||
public class BitMapBloomFilter implements BloomFilter{
|
||||
public class BitMapBloomFilter implements BloomFilter {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private BloomFilter[] filters;
|
||||
|
||||
/**
|
||||
* 构造,使用默认的5个过滤器
|
||||
*
|
||||
* @param m M值决定BitMap的大小
|
||||
*/
|
||||
public BitMapBloomFilter(int m) {
|
||||
long mNum =NumberUtil.div(String.valueOf(m), String.valueOf(5)).longValue();
|
||||
long mNum = NumberUtil.div(String.valueOf(m), String.valueOf(5)).longValue();
|
||||
long size = mNum * 1024 * 1024 * 8;
|
||||
|
||||
|
||||
filters = new BloomFilter[]{
|
||||
new DefaultFilter(size),
|
||||
new ELFFilter(size),
|
||||
new JSFilter(size),
|
||||
new PJWFilter(size),
|
||||
new SDBMFilter(size)
|
||||
new DefaultFilter(size),
|
||||
new ELFFilter(size),
|
||||
new JSFilter(size),
|
||||
new PJWFilter(size),
|
||||
new SDBMFilter(size)
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用自定的多个过滤器建立BloomFilter
|
||||
*
|
||||
* @param m M值决定BitMap的大小
|
||||
*
|
||||
* @param m M值决定BitMap的大小
|
||||
* @param filters Bloom过滤器列表
|
||||
*/
|
||||
public BitMapBloomFilter(int m, BloomFilter... filters) {
|
||||
@@ -51,6 +52,7 @@ public class BitMapBloomFilter implements BloomFilter{
|
||||
|
||||
/**
|
||||
* 增加字符串到Filter映射中
|
||||
*
|
||||
* @param str 字符串
|
||||
*/
|
||||
@Override
|
||||
@@ -64,6 +66,7 @@ public class BitMapBloomFilter implements BloomFilter{
|
||||
|
||||
/**
|
||||
* 是否可能包含此字符串,此处存在误判
|
||||
*
|
||||
* @param str 字符串
|
||||
* @return 是否存在
|
||||
*/
|
||||
|
Reference in New Issue
Block a user