public abstract class BloomFilter
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected java.nio.ByteBuffer |
filter |
protected BloomFilter |
forkedFilter |
protected int |
k
Number of hash functions
|
protected int |
length |
protected java.util.concurrent.locks.ReadWriteLock |
lock |
protected boolean |
needRebuild |
Modifier | Constructor and Description |
---|---|
protected |
BloomFilter(int length,
int k) |
Modifier and Type | Method and Description |
---|---|
void |
addKey(byte[] key) |
void |
addKeyForked(byte[] key) |
boolean |
checkFilter(byte[] key) |
void |
close() |
int |
copyTo(byte[] buf,
int offset) |
static BloomFilter |
createFilter(java.io.File file,
int length,
int k,
boolean counting) |
static BloomFilter |
createFilter(int length,
int k,
boolean counting) |
void |
discard() |
protected void |
finalize() |
void |
force() |
abstract void |
fork(int k)
Create an empty, in-memory copy of bloom filter.
|
protected abstract boolean |
getBit(int offset) |
int |
getFilledCount() |
protected java.util.Random |
getHashes(byte[] key) |
int |
getK() |
int |
getLength() |
int |
getSizeBytes() |
void |
init() |
void |
merge() |
boolean |
needRebuild() |
static int |
optimialK(int filterLength,
long maxKey)
Calculate optimal K value
|
void |
removeKey(byte[] key) |
protected abstract void |
setBit(int offset) |
void |
unsetAll() |
protected abstract void |
unsetBit(int offset) |
void |
writeTo(java.io.OutputStream cos) |
protected java.nio.ByteBuffer filter
protected final int k
protected final int length
protected transient java.util.concurrent.locks.ReadWriteLock lock
protected BloomFilter forkedFilter
protected boolean needRebuild
public void init()
public static BloomFilter createFilter(int length, int k, boolean counting)
public static BloomFilter createFilter(java.io.File file, int length, int k, boolean counting) throws java.io.IOException
java.io.IOException
public void addKey(byte[] key)
public void addKeyForked(byte[] key)
public boolean checkFilter(byte[] key)
public void removeKey(byte[] key)
protected abstract boolean getBit(int offset)
protected abstract void setBit(int offset)
protected abstract void unsetBit(int offset)
public void unsetAll()
protected java.util.Random getHashes(byte[] key)
public abstract void fork(int k)
public void merge()
public void discard()
public static int optimialK(int filterLength, long maxKey)
filterLength
- filter length in bitsmaxKey
- public int getK()
public boolean needRebuild()
public void force()
public void close()
protected void finalize() throws java.lang.Throwable
finalize
in class java.lang.Object
java.lang.Throwable
public int getSizeBytes()
public int getLength()
public int getFilledCount()
public int copyTo(byte[] buf, int offset)
public void writeTo(java.io.OutputStream cos) throws java.io.IOException
java.io.IOException