Interface IndexProducer
- All Known Subinterfaces:
BloomFilter
,CellProducer
,CountingBloomFilter
- All Known Implementing Classes:
ArrayCountingBloomFilter
,LayeredBloomFilter
,SimpleBloomFilter
,SparseBloomFilter
,WrappedBloomFilter
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
An object that produces indices of a Bloom filter.
The default implementation of asIndexArray
is slow. Implementers should reimplement the
method where possible.
- Since:
- 4.5
-
Method Summary
Modifier and TypeMethodDescriptiondefault int[]
Return a copy of the IndexProducer data as an int array.boolean
forEachIndex
(IntPredicate predicate) Each index is passed to the predicate.static IndexProducer
fromBitMapProducer
(BitMapProducer producer) Creates an IndexProducer from aBitMapProducer
.static IndexProducer
fromIndexArray
(int... values) Creates an IndexProducer from an array of integers.default IndexProducer
Creates an IndexProducer comprising the unique indices for this producer.
-
Method Details
-
fromBitMapProducer
Creates an IndexProducer from aBitMapProducer
.- Parameters:
producer
- theBitMapProducer
- Returns:
- a new
IndexProducer
.
-
fromIndexArray
Creates an IndexProducer from an array of integers.- Parameters:
values
- the index values- Returns:
- an IndexProducer that uses the values.
-
asIndexArray
Return a copy of the IndexProducer data as an int array.Indices ordering and uniqueness is not guaranteed.
The default implementation of this method creates an array and populates it. Implementations that have access to an index array should consider returning a copy of that array if possible.
- Returns:
- An int array of the data.
-
forEachIndex
Each index is passed to the predicate. The predicate is applied to each index value, if the predicate returnsfalse
the execution is stopped,false
is returned, and no further indices are processed.Any exceptions thrown by the action are relayed to the caller.
Indices ordering and uniqueness is not guaranteed.
- Parameters:
predicate
- the action to be performed for each non-zero bit index.- Returns:
true
if all indexes return true from consumer,false
otherwise.- Throws:
NullPointerException
- if the specified action is null
-
uniqueIndices
Creates an IndexProducer comprising the unique indices for this producer.By default creates a new producer with some overhead to remove duplicates. IndexProducers that return unique indices by default should override this to return
this
.The default implementation will filter the indices from this instance and return them in ascending order.
- Returns:
- the IndexProducer of unique values.
- Throws:
IndexOutOfBoundsException
- if any index is less than zero.
-