T
- public class BloomFilterRedis<T> extends java.lang.Object implements BloomFilter<T>
CountingBloomFilterRedis
. The performance of this data structure is very good, as operations are
grouped into fast transactions, minimizing the network overhead of all bloom filter operations to one round trip to
Redis.Constructor and Description |
---|
BloomFilterRedis(FilterBuilder builder) |
Modifier and Type | Method and Description |
---|---|
boolean |
add(byte[] element)
Adds the passed value to the filter.
|
java.util.List<java.lang.Boolean> |
addAll(java.util.Collection<T> elements)
Performs a bulk add operation for a collection of elements.
|
void |
clear()
Removes all elements from the filter (i.e. resets all bits to zero).
|
BloomFilter<T> |
clone()
Constructs a deep copy of the Bloom filter
|
FilterBuilder |
config()
Returns the configuration/builder of the Bloom filter.
|
boolean |
contains(byte[] element)
Tests whether an element is present in the filter (subject to the specified false positive rate).
|
java.util.List<java.lang.Boolean> |
contains(java.util.Collection<T> elements)
Bulk-tests elements for existence in the filter.
|
boolean |
equals(java.lang.Object o) |
java.util.BitSet |
getBitSet()
Return the underyling bit vector of the Bloom filter.
|
java.lang.Double |
getEstimatedPopulation()
Estimates the current population of the Bloom filter (see: http://en.wikipedia.org/wiki/Bloom_filter#Approximating_the_number_of_items_in_a_Bloom_filter
)
|
boolean |
intersect(BloomFilter<T> other)
Performs the intersection operation on two compatible bloom filters.
|
boolean |
isEmpty()
Returns
true if the Bloom filter does not contain any elements |
void |
remove()
Destroys the Bloom filter by deleting its contents and metadata
|
boolean |
union(BloomFilter<T> other)
Performs the union operation on two compatible bloom filters.
|
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
add, asString, compatible, contains, containsAll, getBitsPerElement, getBitZeroProbability, getEstimatedFalsePositiveProbability, getExpectedElements, getFalsePositiveProbability, getFalsePositiveProbability, getHashes, getSize, hash, hash, population, toBytes
public BloomFilterRedis(FilterBuilder builder)
public FilterBuilder config()
BloomFilter
config
in interface BloomFilter<T>
public boolean add(byte[] element)
BloomFilter
add
in interface BloomFilter<T>
element
- value to addtrue
if the value did not previously exist in the filter. Note, that a false positive may occur,
thus the value may not have already been in the filter, but it hashed to a set of bits already in the filter.public java.util.List<java.lang.Boolean> addAll(java.util.Collection<T> elements)
BloomFilter
addAll
in interface BloomFilter<T>
public java.util.List<java.lang.Boolean> contains(java.util.Collection<T> elements)
BloomFilter
contains
in interface BloomFilter<T>
elements
- a collection of elements to testpublic boolean contains(byte[] element)
BloomFilter
contains
in interface BloomFilter<T>
true
if the element is containedpublic void clear()
BloomFilter
clear
in interface BloomFilter<T>
public void remove()
BloomFilter
remove
in interface BloomFilter<T>
public java.util.BitSet getBitSet()
BloomFilter
getBitSet
in interface BloomFilter<T>
public BloomFilter<T> clone()
BloomFilter
clone
in interface BloomFilter<T>
clone
in class java.lang.Object
public boolean union(BloomFilter<T> other)
BloomFilter
union
in interface BloomFilter<T>
other
- the other bloom filterpublic boolean intersect(BloomFilter<T> other)
BloomFilter
intersect
in interface BloomFilter<T>
other
- the other bloom filterpublic boolean isEmpty()
BloomFilter
true
if the Bloom filter does not contain any elementsisEmpty
in interface BloomFilter<T>
true
if the Bloom filter does not contain any elementspublic java.lang.Double getEstimatedPopulation()
BloomFilter
getEstimatedPopulation
in interface BloomFilter<T>
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object