Java中的Bloom过滤器

时间:2011-06-25 19:59:59

标签: java hash bloom-filter

基本上我必须实现一个布隆过滤器并用char'a'到'z'和'A'到'Z'进行测试(简单和完成)。

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

知道这意味着什么吗?

1 个答案:

答案 0 :(得分:3)

误报需要实际数据集,我想你教授的意思是:现在将“a” - “z”,“A” - “Z”添加到过滤器(实际数据),检查所有字符串“ aa“ - ”ZZ“,计算误报的数量(所有肯定都是假的,因为它们都不在数据中)并提取比率:#false_positives/#strings_in_range("aa","ZZ")

编辑:在评论@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());
     }
}