Java中的Bloom过滤器

Java中的Bloom过滤器,java,hash,bloom-filter,Java,Hash,Bloom Filter,基本上,我必须实现一个bloom过滤器,并使用char'a'到'z'和'a'到'z'对其进行测试(简单且完成) 然后我必须测试误报,但要求使用“aa”到“ZZ”(字符串)来计算误报(未完成) 你知道这意味着什么吗?误报需要一组实际的数据,我想你的教授的意思是:在过滤器(实际数据)中添加'a'-'z','a'-'z',现在检查所有字符串“aa”-“ZZ”,计算误报的数量(所有的阳性都是假的,因为数据中没有任何一个)并提取比率:#假阳性/#字符串#在_范围(“aa”,“ZZ”) 编辑:在commen

基本上,我必须实现一个bloom过滤器,并使用char'a'到'z'和'a'到'z'对其进行测试(简单且完成)

然后我必须测试误报,但要求使用“aa”到“ZZ”(字符串)来计算误报(未完成)


你知道这意味着什么吗?

误报需要一组实际的数据,我想你的教授的意思是:在过滤器(实际数据)中添加'a'-'z','a'-'z',现在检查所有字符串“aa”-“ZZ”,计算误报的数量(所有的阳性都是假的,因为数据中没有任何一个)并提取比率:
#假阳性/#字符串#在_范围(“aa”,“ZZ”)

编辑:在comments@Bill询问如何迭代“aa”-“ZZ”,下面是一个简单的代码快照

Set<String> set = new HashSet<String>();
for (Character c = 'a';c<='z';c++) { 
     String lower = c.toString();
     String upper = c.toString().toUpperCase();
     for (Character k = 'a';k<='z';k++) { 
            set.add(lower + k.toString());
            set.add(lower + k.toString().toUpperCase());
            set.add(upper + k.toString());
            set.add(upper + k.toString().toUpperCase());
     }
}
Set Set=newhashset();

对于(字符c='a';c,这对我来说没有任何意义,对不起。我添加了字符,这很好。我不明白的是为什么我们使用字符串来计算误报,哈希函数取整数。这个答案假设哈希函数可以处理字符串作为输入,以及char。好的,那么我如何从“aa”迭代到“zz”那么?@Bill:这是一个不同的问题,但只要构建它们并插入到一个集合中,请参见编辑获取代码示例。@Bill:请参见编辑如何构建包含这些字符串的
集合。