Class KeyAnalyzer<K>
java.lang.Object
org.apache.commons.collections4.trie.KeyAnalyzer<K>
- Type Parameters:
- K- the type of objects that may be compared by this analyzer
- All Implemented Interfaces:
- Serializable,- Comparator<K>
- Direct Known Subclasses:
- StringKeyAnalyzer
Defines the interface to analyze 
Trie keys on a bit level.
 KeyAnalyzer's methods return the length of the key in bits, whether or not a bit is set,
 and bits per element in the key.
 
 Additionally, a method determines if a key is a prefix of another
 key and returns the bit index where one key is different from another
 key (if the key and found key are equal than the return value is
 EQUAL_BIT_KEY).
 
- Since:
- 4.0
- See Also:
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final intReturned bybitIndex(Object, int, int, Object, int, int)if key and found key are equal.static final intReturned bybitIndex(Object, int, int, Object, int, int)if key's bits are all 0.static final intUsed to test abitIndexinisOutOfBoundsIndex(int).
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionabstract intbitIndex(K key, int offsetInBits, int lengthInBits, K other, int otherOffsetInBits, int otherLengthInBits) Returns the n-th different bit between key and other.abstract intReturns the number of bits per element in the key.intabstract booleanReturns whether or not a bit is set.abstract booleanDetermines whether or not the given prefix (from offset to length) is a prefix of the given key.abstract intlengthInBits(K key) Returns the length of the Key in bits.Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Comparatorequals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
- 
Field Details- 
NULL_BIT_KEYReturned bybitIndex(Object, int, int, Object, int, int)if key's bits are all 0.- See Also:
 
- 
EQUAL_BIT_KEYReturned bybitIndex(Object, int, int, Object, int, int)if key and found key are equal. This is a very specific case and shouldn't happen on a regular basis.- See Also:
 
- 
OUT_OF_BOUNDS_BIT_KEYUsed to test abitIndexinisOutOfBoundsIndex(int).- See Also:
 
 
- 
- 
Constructor Details- 
KeyAnalyzerpublic KeyAnalyzer()Constructs a new instance.
 
- 
- 
Method Details- 
bitIndexpublic abstract int bitIndex(K key, int offsetInBits, int lengthInBits, K other, int otherOffsetInBits, int otherLengthInBits) Returns the n-th different bit between key and other. This starts the comparison in key at 'offsetInBits' and goes for 'lengthInBits' bits, and compares to the other key starting at 'otherOffsetInBits' and going for 'otherLengthInBits' bits.- Parameters:
- key- the key to use
- offsetInBits- the bit offset in the key
- lengthInBits- the maximum key length in bits to use
- other- the other key to use
- otherOffsetInBits- the bit offset in the other key
- otherLengthInBits- the maximum key length in bits for the other key
- Returns:
- the bit index where the key and other first differ
 
- 
bitsPerElementReturns the number of bits per element in the key. This is only useful for variable-length keys, such as Strings.- Returns:
- the number of bits per element
 
- 
compare
- 
isBitSetReturns whether or not a bit is set.- Parameters:
- key- the key to check, may not be null
- bitIndex- the bit index to check
- lengthInBits- the maximum key length in bits to check
- Returns:
- trueif the bit is set in the given key and- bitIndex<- lengthInBits,- falseotherwise.
 
- 
isPrefixDetermines whether or not the given prefix (from offset to length) is a prefix of the given key.- Parameters:
- prefix- the prefix to check
- offsetInBits- the bit offset in the key
- lengthInBits- the maximum key length in bits to use
- key- the key to check
- Returns:
- trueif this is a valid prefix for the given key
 
- 
lengthInBitsReturns the length of the Key in bits.- Parameters:
- key- the key
- Returns:
- the bit length of the key
 
 
-