public abstract class ForwardingSortedMap<K,V> extends ForwardingMap<K,V> implements java.util.SortedMap<K,V>
Warning: The methods of ForwardingSortedMap
forward indiscriminately to
the methods of the delegate. For example, overriding ForwardingMap.put(K, V)
alone will not change
the behavior of ForwardingMap.putAll(java.util.Map<? extends K, ? extends V>)
, which can lead to unexpected behavior. In this case, you should
override putAll
as well, either providing your own implementation, or delegating to the
provided standardPutAll
method.
default
method warning: This class does not forward calls to default
methods. Instead, it inherits their default implementations. When those implementations
invoke methods, they invoke methods on the ForwardingSortedMap
.
Each of the standard
methods, where appropriate, use the comparator of the map to test
equality for both keys and values, unlike ForwardingMap
.
The standard
methods and the collection views they return are not guaranteed to be
thread-safe, even when all of the methods that they depend on are thread-safe.
Modifier and Type | Class and Description |
---|---|
protected class |
ForwardingSortedMap.StandardKeySet
A sensible implementation of
SortedMap.keySet() in terms of the methods of ForwardingSortedMap . |
ForwardingMap.StandardEntrySet, ForwardingMap.StandardValues
Modifier | Constructor and Description |
---|---|
protected |
ForwardingSortedMap()
Constructor for use by subclasses.
|
Modifier and Type | Method and Description |
---|---|
java.util.Comparator<? super K> |
comparator() |
protected abstract java.util.SortedMap<K,V> |
delegate()
Returns the backing delegate instance that methods are forwarded to.
|
K |
firstKey() |
java.util.SortedMap<K,V> |
headMap(K toKey) |
K |
lastKey() |
protected boolean |
standardContainsKey(java.lang.Object key)
A sensible definition of
ForwardingMap.containsKey(java.lang.Object) in terms of the firstKey() method of
tailMap(K) . |
protected java.util.SortedMap<K,V> |
standardSubMap(K fromKey,
K toKey)
A sensible default implementation of
subMap(Object, Object) in terms of headMap(Object) and tailMap(Object) . |
java.util.SortedMap<K,V> |
subMap(K fromKey,
K toKey) |
java.util.SortedMap<K,V> |
tailMap(K fromKey) |
(package private) static int |
unsafeCompare(java.util.Comparator<?> comparator,
java.lang.Object o1,
java.lang.Object o2) |
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, standardClear, standardContainsValue, standardEquals, standardHashCode, standardIsEmpty, standardPutAll, standardRemove, standardToString, values
toString
protected ForwardingSortedMap()
protected abstract java.util.SortedMap<K,V> delegate()
ForwardingObject
ForwardingSet.delegate()
. Concrete subclasses override this method to supply the
instance being decorated.delegate
in class ForwardingMap<K,V>
@CheckForNull public java.util.Comparator<? super K> comparator()
static int unsafeCompare(@CheckForNull java.util.Comparator<?> comparator, @CheckForNull java.lang.Object o1, @CheckForNull java.lang.Object o2)
protected boolean standardContainsKey(@CheckForNull java.lang.Object key)
ForwardingMap.containsKey(java.lang.Object)
in terms of the firstKey()
method of
tailMap(K)
. If you override tailMap(K)
, you may wish to override ForwardingMap.containsKey(java.lang.Object)
to forward to this implementation.standardContainsKey
in class ForwardingMap<K,V>
protected java.util.SortedMap<K,V> standardSubMap(K fromKey, K toKey)
subMap(Object, Object)
in terms of headMap(Object)
and tailMap(Object)
. In some situations, you may wish to override
subMap(Object, Object)
to forward to this implementation.