java如何编写布隆过滤器
时间: 2024-02-08 14:41:51 浏览: 87
利用Java手写一个布隆过滤器Bloom Filter
布隆过滤器是一种快速、高效的数据结构,用于判断一个元素是否存在于一个集合中。下面是一个简单的 Java 实现:
1.定义布隆过滤器类
```
public class BloomFilter {
private int size;
private boolean[] filter;
public BloomFilter(int size) {
this.size = size;
filter = new boolean[size];
}
// 计算哈希值
private int hash(String input) {
int hash = 0;
for (int i = 0; i < input.length(); i++) {
hash = 31 * hash + input.charAt(i);
}
return Math.abs(hash % size);
}
// 将元素添加到布隆过滤器中
public void add(String input) {
int h = hash(input);
filter[h] = true;
}
// 检查元素是否在布隆过滤器中
public boolean contains(String input) {
int h = hash(input);
return filter[h];
}
}
```
2.测试布隆过滤器
```
public class BloomFilterTest {
public static void main(String[] args) {
BloomFilter filter = new BloomFilter(1000);
// 添加元素
filter.add("abc");
filter.add("def");
filter.add("ghi");
// 检查元素是否存在
System.out.println(filter.contains("abc")); // true
System.out.println(filter.contains("def")); // true
System.out.println(filter.contains("xyz")); // false
}
}
```
以上就是一个简单的 Java 实现布隆过滤器的方法。
阅读全文