引用:
http://www.java3z.com/cwbwebhome/article/article5/51296.html?id=3438
public class SimpleBloomFilter {
private static final int DEFAULT_SIZE = 14 ;
private static final int [] seeds =new int []{5};
private BitSet bits= new BitSet(DEFAULT_SIZE);
private SimpleHash[] func = new SimpleHash[seeds.length];
public static void main(String[] args) {
String value = "stone2083@yahoo.cn" ;
SimpleBloomFilter filter = new SimpleBloomFilter();
System.out.println(filter.contains(value));
filter.add(value);
System.out.println(filter.contains(value));
}
public SimpleBloomFilter() {
for( int i= 0 ; i< seeds.length; i ++ ) {
func[i] = new SimpleHash(DEFAULT_SIZE, seeds[i]);
}
}
public void add(String value) {
for(SimpleHash f : func) {
bits.set(f.hash(value),true);
}
}
public boolean contains(String value) {
if(value ==null ) {
return false ;
}
boolean ret = true ;
for(SimpleHash f : func) {
ret=ret&& bits.get(f.hash(value));
}
return ret;
}
public static class SimpleHash {
private int cap;
private int seed;
public SimpleHash( int cap, int seed) {
this.cap= cap;
this.seed =seed;
}
public int hash(String value) {
int result=0 ;
int len= value.length();
for (int i= 0 ; i< len; i ++ ) {
result =seed* result + value.charAt(i);
}
return (cap - 1 ) & result;
}
}
}
分享到:
相关推荐
操作系统课程设计-时间片轮转算法Java实现借鉴 一、操作系统概述 操作系统是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务...
本资源"数据挖掘算法Java实现(源码)"是针对数据挖掘爱好者和开发者的一份宝贵资料,它包含了多种经典的数据挖掘算法的Java实现。 1. **支持向量机(SVM)**:SVM是一种二分类模型,它的基本模型是定义在特征空间...
9. **性能优化**:虽然祖冲之算法本身已经设计得很高效,但在Java中实现时,仍需要注意内存管理和计算性能,以适应可能的大规模数据加密需求。 10. **文档编写**:为了方便其他开发者理解和使用你的实现,需要编写...
Apriori算法java实现,本人自己毕业设计用的不解释! 上次传的有人说用不了,表示很惊讶! !本人亲测能用的
`apriori.java`是Apriori算法的Java实现文件。这个文件可能包含了以下关键部分: 1. 数据预处理:从Excel文件中读取数据,转换成项集(如商品列表)。 2. 支持度计算:定义一个函数来计算项集的支持度,这是评估项集...
java版的DBSCAN聚类算法实现,是典型的算法思路实现,遍历未访问的所有点,如果是核心点,就新建一个簇,然后遍历其邻域内的所有点集A,不断扩展,如果簇内的点时核心点,就将其邻域所有点纳入点集A,并从点集移除已...
支持向量机(Support Vector Machine,简称SVM)是一种广泛应用于分类和回归分析的机器学习算法。...总的来说,Encog为Java开发者提供了一个强大且易用的SVM实现工具,使得在Java环境中应用SVM算法变得简单而高效。
LZ4压缩算法java实现 LZ4压缩算法是lossless压缩算法,提供了高达500 MB/s每个核心的压缩速度,且可以根据多核CPU进行扩展。它具有极快的解压速度,速度可达多GB/s每个核心,通常达到多核系统中的RAM速度限制。速度...
在给定的标题“多边形填充算法java实现”中,我们可以推断这是一个Java编程项目,它实现了对多边形内部进行填充的功能。描述中提到的“扫描线算法”是实现这一功能的常见方法,这种方法基于逐行扫描图像并处理与...
在下载的"布谷鸟算法Java实现源码"中,`CuckooSearch`可能是主程序类,包含了上述所有关键部分的实现。你可以通过阅读源码理解各个部分的工作原理,并根据你的实际问题调整参数和策略,以适应不同的优化任务。 总的...
里面的Gs.java是算法文件。另外一个带图形界面的swing类文件可以忽略不看。 算法的输入是两个矩阵data_man 和data_woman。 data\1 里面的数据对应了男士优先的gs算法,2对应了女士优先的算法。 其中矩阵的输入代表了...
《银行家算法Java实现带UI界面详解》 银行家算法,由荷兰计算机科学家艾兹格·迪科斯彻提出,是一种预防死锁的策略,它主要用于操作系统中资源的分配,以确保系统的安全性。该算法的核心在于预先分配一部分资源,...
背包算法 背包算法JAVA实现 背包算法JAVA实现
在Java中实现DES加密,主要涉及到`javax.crypto`包中的类,如`KeyGenerator`用于生成密钥,`Cipher`用于进行加解密操作。首先,你需要生成一个DES密钥,这通常包括设定密钥长度(DES的标准长度为56位,但在Java中是...
在Java中实现Dijkstra算法,主要涉及以下几个步骤: 1. **初始化**:首先,创建一个图的表示,可以使用邻接矩阵或邻接表来存储节点之间的连接和权重。同时,为每个节点分配一个初始距离值,源节点设为0,其他节点设...
银行家算法java实现源码及作业调度算法源码.zip银行家算法java实现源码及作业调度算法源码.zip银行家算法java实现源码及作业调度算法源码.zip银行家算法java实现源码及作业调度算法源码.zip银行家算法java实现源码及...
kr iging插值算法java实现-Java代码类资源
本资源为DES算法java实现代码 数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的。通常,自动取款机...
在这个“算法java实现”的主题中,我们将深入探讨如何使用Java语言来实现各种重要的算法。Java是一种面向对象的编程语言,以其跨平台性和强大的库支持而受到广大程序员的喜爱,尤其适合用于算法的实现。 1. **动态...
4. **Java实现TF-IDF** - 在Java中实现TF-IDF,我们可以使用开源库如Apache Lucene或者Mallet。Lucene是一个强大的全文搜索引擎库,它提供了TF-IDF的实现。Mallet则是一个机器学习工具包,也包含了TF-IDF的计算功能...