public class DualTreeBidiMap<K,V> extends AbstractDualBidiMap<K ,V> implements SortedBidiMap <K ,V>, Serializable
BidiMap that uses two
TreeMap instances.
The setValue() method on iterators will succeed only if the new value being set is not already in the bidimap.
When considering whether to use this class, the TreeBidiMap class should also be considered. It implements the interface using a dedicated design, and does not store each object twice, which can save on memory use.
NOTE: From Commons Collections 3.1, all subclasses will use TreeMap and the flawed createMap method is ignored.
| Modifier and Type | Class and Description |
|---|---|
protected static class |
DualTreeBidiMap
Inner class MapIterator.
|
protected static class |
DualTreeBidiMap
Internal sorted map view.
|
AbstractDualBidiMap.BidiMapIterator <K,V>, AbstractDualBidiMap.EntrySet <K,V>, AbstractDualBidiMap.EntrySetIterator <K,V>, AbstractDualBidiMap.KeySet <K>, AbstractDualBidiMap.KeySetIterator <K>, AbstractDualBidiMap.MapEntry <K,V>, AbstractDualBidiMap.Values <V>, AbstractDualBidiMap.ValuesIterator <V>, AbstractDualBidiMap.View <K,V,E> | Modifier | Constructor and Description |
|---|---|
|
DualTreeBidiMap()
Creates an empty
DualTreeBidiMap
|
|
DualTreeBidiMap(Comparator
Constructs a
DualTreeBidiMap using the specified
Comparator.
|
|
DualTreeBidiMap(Map
Constructs a
DualTreeBidiMap and copies the mappings from specified
Map.
|
protected |
DualTreeBidiMap(Map
Constructs a
DualTreeBidiMap that decorates the specified maps.
|
| Modifier and Type | Method and Description |
|---|---|
Comparator |
comparator()
|
protected DualTreeBidiMap |
createBidiMap(Map
Creates a new instance of this object.
|
K |
firstKey()
Gets the first key currently in this map.
|
SortedMap |
headMap(K toKey)
|
SortedBidiMap |
inverseBidiMap()
Gets a view of this map where the keys and values are reversed.
|
OrderedBidiMap |
inverseOrderedBidiMap()
|
SortedBidiMap |
inverseSortedBidiMap()
|
K |
lastKey()
Gets the last key currently in this map.
|
OrderedMapIterator |
mapIterator()
Obtains an ordered map iterator.
|
K |
nextKey(K key)
Gets the next key after the one specified.
|
K |
previousKey(K key)
Gets the previous key before the one specified.
|
SortedMap |
subMap(K fromKey, K toKey)
|
SortedMap |
tailMap(K fromKey)
|
Comparator |
valueComparator()
Get the comparator used for the values in the value-to-key map aspect.
|
clear, containsKey, containsValue, createEntrySetIterator, createKeySetIterator, createValuesIterator, entrySet, equals, get, getKey, hashCode, isEmpty, keySet, put, putAll, remove, removeValue, size, toString, valuesclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetKey, put, removeValue, valuesclear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, sizecontainsKey, containsValue, entrySet, get, isEmpty, keySet, remove, sizepublic DualTreeBidiMap()
DualTreeBidiMap
public DualTreeBidiMap(Map<? extends K ,? extends V> map)
DualTreeBidiMap and copies the mappings from specified
Map.
map - the map whose mappings are to be placed in this map
public DualTreeBidiMap(Comparator<? super K> keyComparator, Comparator <? super V> valueComparator)
DualTreeBidiMap using the specified
Comparator.
keyComparator - the comparator
valueComparator - the values comparator to use
protected DualTreeBidiMap<V ,K> createBidiMap(Map <V ,K> normalMap, Map <K ,V> reverseMap, BidiMap <K ,V> inverseMap)
createBidiMap in class
AbstractDualBidiMap<K,V>
normalMap - the normal direction map
reverseMap - the reverse direction map
inverseMap - the inverse BidiMap
public Comparator<? super K> comparator()
public Comparator<? super V> valueComparator()
SortedBidiMap
valueComparator in interface
SortedBidiMap<K,V>
public K firstKey()
OrderedMap
public K lastKey()
OrderedMap
public K nextKey(K key)
OrderedMap
nextKey in interface
OrderedMap<K,V>
key - the key to search for next from
public K previousKey(K key)
OrderedMap
previousKey in interface
OrderedMap<K,V>
key - the key to search for previous from
public OrderedMapIterator<K ,V> mapIterator()
This implementation copies the elements to an ArrayList in order to provide the forward/backward behaviour.
mapIterator in interface
IterableGet<K,V>
mapIterator in interface
OrderedMap<K,V>
mapIterator in class
AbstractDualBidiMap<K,V>
public SortedBidiMap<V ,K> inverseSortedBidiMap()
public OrderedBidiMap<V ,K> inverseOrderedBidiMap()
public SortedBidiMap<V ,K> inverseBidiMap()
BidiMap
Changes to one map will be visible in the other and vice versa. This enables both directions of the map to be accessed as a Map.
Implementations should seek to avoid creating a new object every time this method is called. See AbstractMap.values() etc. Calling this method on the inverse map should return the original.
inverseBidiMap in interface
BidiMap<K,V>
inverseBidiMap in interface
OrderedBidiMap<K,V>
inverseBidiMap in interface
SortedBidiMap<K,V>
inverseBidiMap in class
AbstractDualBidiMap<K,V>