public class KeySelector extends Object
Modifier and Type | Class and Description |
---|---|
static interface |
KeySelector.BitSelector |
class |
KeySelector.GenericBitSelector
Extracts the k bit offsets from a key, suitable for general values
of m and k.
|
class |
KeySelector.GenericWordSelector
Extracts the k word offsets from a key.
|
static interface |
KeySelector.WordSelector |
Constructor and Description |
---|
KeySelector(int m,
int k)
Creates a key selector for a Bloom filter.
|
Modifier and Type | Method and Description |
---|---|
void |
getOffsets(byte[] key,
int[] bitOffset,
int[] wordOffset)
Given a key, populate the word and bit offset arrays, each
of which has k elements.
|
void |
getOffsets(byte[] key,
int off,
int len,
int[] bitOffset,
int[] wordOffset)
Given a key, populate the word and bit offset arrays, each
of which has k elements.
|
public KeySelector(int m, int k)
m
- size of the filter as a power of 2k
- number of 'hash functions'
Note that if k and m are too big, the GenericWordSelector blows up -
The max for 32-byte keys is m=23 and k=11.
The precise restriction appears to be:
((5k + (k-1)(m-5)) / 8) + 2 < keySizeInBytes
It isn't clear how to fix this.public void getOffsets(byte[] key, int[] bitOffset, int[] wordOffset)
key
- cryptographic key used in populating the arraysbitOffset
- Out parameter of length kwordOffset
- Out parameter of length kpublic void getOffsets(byte[] key, int off, int len, int[] bitOffset, int[] wordOffset)
key
- cryptographic key used in populating the arraysbitOffset
- Out parameter of length kwordOffset
- Out parameter of length k