Class AbstractPatriciaTrie<K,V>
- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- org.apache.commons.collections4.trie.AbstractBitwiseTrie<K,V>
-
- org.apache.commons.collections4.trie.AbstractPatriciaTrie<K,V>
-
- Type Parameters:
K- the type of the keys in this mapV- the type of the values in this map
- All Implemented Interfaces:
java.io.Serializable,java.util.Map<K,V>,java.util.SortedMap<K,V>,Get<K,V>,IterableGet<K,V>,IterableMap<K,V>,IterableSortedMap<K,V>,OrderedMap<K,V>,Put<K,V>,Trie<K,V>
- Direct Known Subclasses:
PatriciaTrie
public abstract class AbstractPatriciaTrie<K,V> extends AbstractBitwiseTrie<K,V>
This class implements the base PATRICIA algorithm and everything that is related to theMapinterface.- Since:
- 4.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classAbstractPatriciaTrie.TrieEntry<K,V>ATrieis a set ofAbstractPatriciaTrie.TrieEntrynodes.
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractPatriciaTrie(KeyAnalyzer<? super K> keyAnalyzer)Constructs a newTrieusing the givenKeyAnalyzer.protectedAbstractPatriciaTrie(KeyAnalyzer<? super K> keyAnalyzer, java.util.Map<? extends K,? extends V> map)Constructs a newTrieusing the givenKeyAnalyzerand initializes theTriewith the values from the providedMap.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Removes all of the mappings from this map.java.util.Comparator<? super K>comparator()booleancontainsKey(java.lang.Object k)Tests for presence of a given key.java.util.Set<java.util.Map.Entry<K,V>>entrySet()Gets a set view of the mappings contained in this map.KfirstKey()Gets the first key currently in this map.Vget(java.lang.Object k)Gets a value at a given key.java.util.SortedMap<K,V>headMap(K toKey)java.util.Set<K>keySet()Gets a view of the keys contained in this map.KlastKey()Gets the last key currently in this map.OrderedMapIterator<K,V>mapIterator()Obtains anOrderedMapIteratorover the map.KnextKey(K key)Gets the next key after the one specified.java.util.SortedMap<K,V>prefixMap(K key)Returns a view of thisTrieof all elements that are prefixed by the given key.KpreviousKey(K key)Gets the previous key before the one specified.Vput(K key, V value)Associates the specified value with the specified key in this map.Vremove(java.lang.Object k)Remove a key-value mappings.java.util.Map.Entry<K,V>select(K key)Returns theMap.Entrywhose key is closest in a bitwise XOR metric to the given key.KselectKey(K key)Returns the key that is closest in a bitwise XOR metric to the provided key.VselectValue(K key)Returns the value whose key is closest in a bitwise XOR metric to the provided key.intsize()Gets the number of key-value mappings in this map.java.util.SortedMap<K,V>subMap(K fromKey, K toKey)java.util.SortedMap<K,V>tailMap(K fromKey)java.util.Collection<V>values()Gets a a collection view of the values contained in this map.-
Methods inherited from class org.apache.commons.collections4.trie.AbstractBitwiseTrie
getKeyAnalyzer, toString
-
Methods inherited from class java.util.AbstractMap
clone, containsValue, equals, hashCode, isEmpty, putAll
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.commons.collections4.Get
containsValue, isEmpty
-
-
-
-
Constructor Detail
-
AbstractPatriciaTrie
protected AbstractPatriciaTrie(KeyAnalyzer<? super K> keyAnalyzer)
Constructs a newTrieusing the givenKeyAnalyzer.- Parameters:
keyAnalyzer- theKeyAnalyzer.
-
AbstractPatriciaTrie
protected AbstractPatriciaTrie(KeyAnalyzer<? super K> keyAnalyzer, java.util.Map<? extends K,? extends V> map)
Constructs a newTrieusing the givenKeyAnalyzerand initializes theTriewith the values from the providedMap.- Parameters:
keyAnalyzer- theKeyAnalyzer.map- The source map.
-
-
Method Detail
-
clear
public void clear()
Description copied from interface:PutRemoves all of the mappings from this map.
-
comparator
public java.util.Comparator<? super K> comparator()
-
containsKey
public boolean containsKey(java.lang.Object k)
Description copied from interface:GetTests for presence of a given key.- Specified by:
containsKeyin interfaceGet<K,V>- Specified by:
containsKeyin interfacejava.util.Map<K,V>- Overrides:
containsKeyin classjava.util.AbstractMap<K,V>- Parameters:
k- key whose presence in this map is to be tested- Returns:
trueif this map contains a mapping for the specified key- See Also:
Map.containsKey(Object)
-
entrySet
public java.util.Set<java.util.Map.Entry<K,V>> entrySet()
Description copied from interface:GetGets a set view of the mappings contained in this map.- Specified by:
entrySetin interfaceGet<K,V>- Specified by:
entrySetin interfacejava.util.Map<K,V>- Specified by:
entrySetin interfacejava.util.SortedMap<K,V>- Specified by:
entrySetin classjava.util.AbstractMap<K,V>- Returns:
- a set view of the mappings contained in this map.
- See Also:
Map.entrySet()
-
firstKey
public K firstKey()
Description copied from interface:OrderedMapGets the first key currently in this map.- Returns:
- the first key currently in this map
-
get
public V get(java.lang.Object k)
Description copied from interface:GetGets a value at a given key.- Specified by:
getin interfaceGet<K,V>- Specified by:
getin interfacejava.util.Map<K,V>- Overrides:
getin classjava.util.AbstractMap<K,V>- Parameters:
k- the key whose associated value is to be returned- Returns:
- the value to which the specified key is mapped, or
nullif this map contains no mapping for the key - See Also:
Map.get(Object)
-
keySet
public java.util.Set<K> keySet()
Description copied from interface:GetGets a view of the keys contained in this map.
-
lastKey
public K lastKey()
Description copied from interface:OrderedMapGets the last key currently in this map.- Returns:
- the last key currently in this map
-
mapIterator
public OrderedMapIterator<K,V> mapIterator()
Description copied from interface:OrderedMapObtains anOrderedMapIteratorover the map.An ordered map iterator is an efficient way of iterating over maps in both directions.
- Returns:
- a map iterator
-
nextKey
public K nextKey(K key)
Description copied from interface:OrderedMapGets the next key after the one specified.- Parameters:
key- the key to search for next from- Returns:
- the next key, null if no match or at end
-
prefixMap
public java.util.SortedMap<K,V> prefixMap(K key)
Description copied from interface:TrieReturns a view of thisTrieof all elements that are prefixed by the given key.In a
Triewith fixed size keys, this is essentially aMap.get(Object)operation.For example, if the
Triecontains 'Anna', 'Anael', 'Analu', 'Andreas', 'Andrea', 'Andres', and 'Anatole', then a lookup of 'And' would return 'Andreas', 'Andrea', and 'Andres'.- Parameters:
key- the key used in the search- Returns:
- a
SortedMapview of thisTriewith all elements whose key is prefixed by the search key
-
previousKey
public K previousKey(K key)
Description copied from interface:OrderedMapGets the previous key before the one specified.- Parameters:
key- the key to search for previous from- Returns:
- the previous key, null if no match or at start
-
put
public V put(K key, V value)
Description copied from interface:PutAssociates the specified value with the specified key in this map.Note that the return type is Object, rather than V as in the Map interface. See the class Javadoc for further info.
- Specified by:
putin interfacejava.util.Map<K,V>- Specified by:
putin interfacePut<K,V>- Overrides:
putin classjava.util.AbstractMap<K,V>- Parameters:
key- key with which the specified value is to be associatedvalue- value to be associated with the specified key- Returns:
- the previous value associated with
key, ornullif there was no mapping forkey. (Anullreturn can also indicate that the map previously associatednullwithkey, if the implementation supportsnullvalues.) - See Also:
Map.put(Object, Object)
-
remove
public V remove(java.lang.Object k)
Remove a key-value mappings.- Specified by:
removein interfaceGet<K,V>- Specified by:
removein interfacejava.util.Map<K,V>- Overrides:
removein classjava.util.AbstractMap<K,V>- Parameters:
k- key whose mapping is to be removed from the map- Returns:
- the previous value associated with
key, ornullif there was no mapping forkey. - Throws:
java.lang.ClassCastException- if provided key is of an incompatible type- See Also:
Map.remove(Object)
-
select
public java.util.Map.Entry<K,V> select(K key)
Returns theMap.Entrywhose key is closest in a bitwise XOR metric to the given key. This is NOT lexicographic closeness. For example, given the keys:- D = 1000100
- H = 1001000
- L = 1001100
Triecontained 'H' and 'L', a lookup of 'D' would return 'L', because the XOR distance between D & L is smaller than the XOR distance between D & H.- Parameters:
key- the key to use in the search- Returns:
- the
Map.Entrywhose key is closest in a bitwise XOR metric to the provided key
-
selectKey
public K selectKey(K key)
Returns the key that is closest in a bitwise XOR metric to the provided key. This is NOT lexicographic closeness! For example, given the keys:- D = 1000100
- H = 1001000
- L = 1001100
Triecontained 'H' and 'L', a lookup of 'D' would return 'L', because the XOR distance between D & L is smaller than the XOR distance between D & H.- Parameters:
key- the key to use in the search- Returns:
- the key that is closest in a bitwise XOR metric to the provided key
-
selectValue
public V selectValue(K key)
Returns the value whose key is closest in a bitwise XOR metric to the provided key. This is NOT lexicographic closeness! For example, given the keys:- D = 1000100
- H = 1001000
- L = 1001100
Triecontained 'H' and 'L', a lookup of 'D' would return 'L', because the XOR distance between D & L is smaller than the XOR distance between D & H.- Parameters:
key- the key to use in the search- Returns:
- the value whose key is closest in a bitwise XOR metric to the provided key
-
size
public int size()
Description copied from interface:GetGets the number of key-value mappings in this map.
-
-