java如何编写布隆过滤器
时间: 2024-02-08 22:41:51 浏览: 96
布隆过滤器是一种快速、高效的数据结构,用于判断一个元素是否存在于一个集合中。下面是一个简单的 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 实现布隆过滤器的方法。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![java](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)