@GwtIncompatible public abstract class ForwardingNavigableMap<K,V> extends ForwardingSortedMap<K,V> implements NavigableMap<K,V>
Warning: The methods of ForwardingNavigableMap
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 ForwardingNavigableMap
.
Each of the standard
methods uses the map's comparator (or the natural ordering of the
elements, if there is no comparator) to test element equality. As a result, if the comparator is
not consistent with equals, some of the standard implementations may violate the Map
contract.
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 |
ForwardingNavigableMap.StandardDescendingMap
A sensible implementation of
NavigableMap.descendingMap() in terms of the methods of this
NavigableMap . |
protected class |
ForwardingNavigableMap.StandardNavigableKeySet
A sensible implementation of
NavigableMap.navigableKeySet() in terms of the methods of
this NavigableMap . |
ForwardingSortedMap.StandardKeySet
ForwardingMap.StandardEntrySet, ForwardingMap.StandardValues
Modifier | Constructor and Description |
---|---|
protected |
ForwardingNavigableMap()
Constructor for use by subclasses.
|
Modifier and Type | Method and Description |
---|---|
Map.Entry<K,V> |
ceilingEntry(K key)
Returns a key-value mapping associated with the least key
greater than or equal to the given key, or
null if
there is no such key. |
K |
ceilingKey(K key)
Returns the least key greater than or equal to the given key,
or
null if there is no such key. |
protected abstract NavigableMap<K,V> |
delegate()
Returns the backing delegate instance that methods are forwarded to.
|
NavigableSet<K> |
descendingKeySet()
Returns a reverse order
NavigableSet view of the keys contained in this map. |
NavigableMap<K,V> |
descendingMap()
Returns a reverse order view of the mappings contained in this map.
|
Map.Entry<K,V> |
firstEntry()
Returns a key-value mapping associated with the least
key in this map, or
null if the map is empty. |
Map.Entry<K,V> |
floorEntry(K key)
Returns a key-value mapping associated with the greatest key
less than or equal to the given key, or
null if there
is no such key. |
K |
floorKey(K key)
Returns the greatest key less than or equal to the given key,
or
null if there is no such key. |
NavigableMap<K,V> |
headMap(K toKey,
boolean inclusive)
Returns a view of the portion of this map whose keys are less than (or
equal to, if
inclusive is true) toKey . |
Map.Entry<K,V> |
higherEntry(K key)
Returns a key-value mapping associated with the least key
strictly greater than the given key, or
null if there
is no such key. |
K |
higherKey(K key)
Returns the least key strictly greater than the given key, or
null if there is no such key. |
Map.Entry<K,V> |
lastEntry()
Returns a key-value mapping associated with the greatest
key in this map, or
null if the map is empty. |
Map.Entry<K,V> |
lowerEntry(K key)
Returns a key-value mapping associated with the greatest key
strictly less than the given key, or
null if there is
no such key. |
K |
lowerKey(K key)
Returns the greatest key strictly less than the given key, or
null if there is no such key. |
NavigableSet<K> |
navigableKeySet()
Returns a
NavigableSet view of the keys contained in this map. |
Map.Entry<K,V> |
pollFirstEntry()
Removes and returns a key-value mapping associated with
the least key in this map, or
null if the map is empty. |
Map.Entry<K,V> |
pollLastEntry()
Removes and returns a key-value mapping associated with
the greatest key in this map, or
null if the map is empty. |
protected Map.Entry<K,V> |
standardCeilingEntry(K key)
|
protected K |
standardCeilingKey(K key)
A sensible definition of
ceilingKey(K) in terms of ceilingEntry . |
protected NavigableSet<K> |
standardDescendingKeySet()
|
protected Map.Entry<K,V> |
standardFirstEntry()
|
protected K |
standardFirstKey()
A sensible definition of
ForwardingSortedMap.firstKey() in terms of firstEntry . |
protected Map.Entry<K,V> |
standardFloorEntry(K key)
|
protected K |
standardFloorKey(K key)
A sensible definition of
floorKey(K) in terms of floorEntry . |
protected SortedMap<K,V> |
standardHeadMap(K toKey)
A sensible definition of
ForwardingSortedMap.headMap(Object) in terms of headMap(Object,
boolean) . |
protected Map.Entry<K,V> |
standardHigherEntry(K key)
|
protected K |
standardHigherKey(K key)
A sensible definition of
higherKey(K) in terms of higherEntry . |
protected Map.Entry<K,V> |
standardLastEntry()
A sensible definition of
lastEntry() in terms of the iterator() of the ForwardingMap.entrySet() of descendingMap() . |
protected K |
standardLastKey()
A sensible definition of
ForwardingSortedMap.lastKey() in terms of lastEntry . |
protected Map.Entry<K,V> |
standardLowerEntry(K key)
|
protected K |
standardLowerKey(K key)
A sensible definition of
lowerKey(K) in terms of lowerEntry . |
protected Map.Entry<K,V> |
standardPollFirstEntry()
|
protected Map.Entry<K,V> |
standardPollLastEntry()
A sensible definition of
pollFirstEntry() in terms of the iterator of the entrySet of descendingMap . |
protected SortedMap<K,V> |
standardSubMap(K fromKey,
K toKey)
A sensible definition of
ForwardingSortedMap.subMap(Object, Object) in terms of subMap(Object,
boolean, Object, boolean) . |
protected SortedMap<K,V> |
standardTailMap(K fromKey)
A sensible definition of
ForwardingSortedMap.tailMap(Object) in terms of tailMap(Object,
boolean) . |
NavigableMap<K,V> |
subMap(K fromKey,
boolean fromInclusive,
K toKey,
boolean toInclusive)
Returns a view of the portion of this map whose keys range from
fromKey to toKey . |
NavigableMap<K,V> |
tailMap(K fromKey,
boolean inclusive)
Returns a view of the portion of this map whose keys are greater than (or
equal to, if
inclusive is true) fromKey . |
comparator, firstKey, headMap, lastKey, standardContainsKey, subMap, tailMap
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, standardClear, standardContainsValue, standardEquals, standardHashCode, standardIsEmpty, standardPutAll, standardRemove, standardToString, values
toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
headMap, subMap, tailMap
comparator, entrySet, firstKey, keySet, lastKey, values
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size
protected ForwardingNavigableMap()
protected abstract NavigableMap<K,V> delegate()
ForwardingObject
ForwardingSet.delegate()
. Concrete subclasses override this method to supply the
instance being decorated.delegate
in class ForwardingSortedMap<K,V>
public Map.Entry<K,V> lowerEntry(K key)
java.util.NavigableMap
null
if there is
no such key.lowerEntry
in interface NavigableMap<K,V>
key
- the keykey
,
or null
if there is no such keyprotected Map.Entry<K,V> standardLowerEntry(K key)
lowerEntry(K)
in terms of the lastEntry()
of headMap(Object, boolean)
. If you override headMap
, you may wish to override lowerEntry
to forward to this implementation.public K lowerKey(K key)
java.util.NavigableMap
null
if there is no such key.lowerKey
in interface NavigableMap<K,V>
key
- the keykey
,
or null
if there is no such keyprotected K standardLowerKey(K key)
lowerKey(K)
in terms of lowerEntry
. If you override
lowerEntry(K)
, you may wish to override lowerKey
to forward to this
implementation.public Map.Entry<K,V> floorEntry(K key)
java.util.NavigableMap
null
if there
is no such key.floorEntry
in interface NavigableMap<K,V>
key
- the keykey
, or null
if there is no such keyprotected Map.Entry<K,V> standardFloorEntry(K key)
floorEntry(K)
in terms of the lastEntry()
of headMap(Object, boolean)
. If you override headMap
, you may wish to override floorEntry
to forward to this implementation.public K floorKey(K key)
java.util.NavigableMap
null
if there is no such key.floorKey
in interface NavigableMap<K,V>
key
- the keykey
,
or null
if there is no such keyprotected K standardFloorKey(K key)
floorKey(K)
in terms of floorEntry
. If you override
floorEntry
, you may wish to override floorKey
to forward to this
implementation.public Map.Entry<K,V> ceilingEntry(K key)
java.util.NavigableMap
null
if
there is no such key.ceilingEntry
in interface NavigableMap<K,V>
key
- the keykey
, or null
if there is no such keyprotected Map.Entry<K,V> standardCeilingEntry(K key)
ceilingEntry(K)
in terms of the firstEntry()
of tailMap(Object, boolean)
. If you override tailMap
, you may wish to override ceilingEntry
to forward to this implementation.public K ceilingKey(K key)
java.util.NavigableMap
null
if there is no such key.ceilingKey
in interface NavigableMap<K,V>
key
- the keykey
,
or null
if there is no such keyprotected K standardCeilingKey(K key)
ceilingKey(K)
in terms of ceilingEntry
. If you override
ceilingEntry
, you may wish to override ceilingKey
to forward to this
implementation.public Map.Entry<K,V> higherEntry(K key)
java.util.NavigableMap
null
if there
is no such key.higherEntry
in interface NavigableMap<K,V>
key
- the keykey
,
or null
if there is no such keyprotected Map.Entry<K,V> standardHigherEntry(K key)
higherEntry(K)
in terms of the firstEntry()
of tailMap(Object, boolean)
. If you override tailMap
, you may wish to override higherEntry
to forward to this implementation.public K higherKey(K key)
java.util.NavigableMap
null
if there is no such key.higherKey
in interface NavigableMap<K,V>
key
- the keykey
,
or null
if there is no such keyprotected K standardHigherKey(K key)
higherKey(K)
in terms of higherEntry
. If you override
higherEntry
, you may wish to override higherKey
to forward to this
implementation.public Map.Entry<K,V> firstEntry()
java.util.NavigableMap
null
if the map is empty.firstEntry
in interface NavigableMap<K,V>
null
if this map is emptyprotected Map.Entry<K,V> standardFirstEntry()
firstEntry()
in terms of the iterator()
of ForwardingMap.entrySet()
. If you override entrySet
, you may wish to override firstEntry
to
forward to this implementation.protected K standardFirstKey()
ForwardingSortedMap.firstKey()
in terms of firstEntry
. If you override
firstEntry
, you may wish to override firstKey
to forward to this
implementation.public Map.Entry<K,V> lastEntry()
java.util.NavigableMap
null
if the map is empty.lastEntry
in interface NavigableMap<K,V>
null
if this map is emptyprotected Map.Entry<K,V> standardLastEntry()
lastEntry()
in terms of the iterator()
of the ForwardingMap.entrySet()
of descendingMap()
. If you override descendingMap
, you may wish to
override lastEntry
to forward to this implementation.protected K standardLastKey()
ForwardingSortedMap.lastKey()
in terms of lastEntry
. If you override lastEntry
, you may wish to override lastKey
to forward to this implementation.public Map.Entry<K,V> pollFirstEntry()
java.util.NavigableMap
null
if the map is empty.pollFirstEntry
in interface NavigableMap<K,V>
null
if this map is emptyprotected Map.Entry<K,V> standardPollFirstEntry()
pollFirstEntry()
in terms of the iterator
of entrySet
. If you override entrySet
, you may wish to override pollFirstEntry
to
forward to this implementation.public Map.Entry<K,V> pollLastEntry()
java.util.NavigableMap
null
if the map is empty.pollLastEntry
in interface NavigableMap<K,V>
null
if this map is emptyprotected Map.Entry<K,V> standardPollLastEntry()
pollFirstEntry()
in terms of the iterator
of the entrySet
of descendingMap
. If you override descendingMap
, you may wish to
override pollFirstEntry
to forward to this implementation.public NavigableMap<K,V> descendingMap()
java.util.NavigableMap
remove
operation), the results of the iteration are undefined.
The returned map has an ordering equivalent to
Collections.reverseOrder
(comparator()).
The expression m.descendingMap().descendingMap()
returns a
view of m
essentially equivalent to m
.
descendingMap
in interface NavigableMap<K,V>
public NavigableSet<K> navigableKeySet()
java.util.NavigableMap
NavigableSet
view of the keys contained in this map.
The set's iterator returns the keys in ascending order.
The set is backed by the map, so changes to the map are reflected in
the set, and vice-versa. If the map is modified while an iteration
over the set is in progress (except through the iterator's own remove
operation), the results of the iteration are undefined. The
set supports element removal, which removes the corresponding mapping
from the map, via the Iterator.remove
, Set.remove
,
removeAll
, retainAll
, and clear
operations.
It does not support the add
or addAll
operations.navigableKeySet
in interface NavigableMap<K,V>
public NavigableSet<K> descendingKeySet()
java.util.NavigableMap
NavigableSet
view of the keys contained in this map.
The set's iterator returns the keys in descending order.
The set is backed by the map, so changes to the map are reflected in
the set, and vice-versa. If the map is modified while an iteration
over the set is in progress (except through the iterator's own remove
operation), the results of the iteration are undefined. The
set supports element removal, which removes the corresponding mapping
from the map, via the Iterator.remove
, Set.remove
,
removeAll
, retainAll
, and clear
operations.
It does not support the add
or addAll
operations.descendingKeySet
in interface NavigableMap<K,V>
@Beta protected NavigableSet<K> standardDescendingKeySet()
descendingKeySet()
as the navigableKeySet
of descendingMap()
. (The ForwardingNavigableMap.StandardDescendingMap
implementation implements navigableKeySet
on its own, so as not to cause an infinite loop.) If you override descendingMap
, you may wish to override descendingKeySet
to forward to this
implementation.protected SortedMap<K,V> standardSubMap(K fromKey, K toKey)
ForwardingSortedMap.subMap(Object, Object)
in terms of subMap(Object,
boolean, Object, boolean)
. If you override subMap(K, boolean, K, boolean)
, you may
wish to override subMap
to forward to this implementation.standardSubMap
in class ForwardingSortedMap<K,V>
public NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
java.util.NavigableMap
fromKey
to toKey
. If fromKey
and
toKey
are equal, the returned map is empty unless
fromInclusive
and toInclusive
are both true. The
returned map is backed by this map, so changes in the returned map are
reflected in this map, and vice-versa. The returned map supports all
optional map operations that this map supports.
The returned map will throw an IllegalArgumentException
on an attempt to insert a key outside of its range, or to construct a
submap either of whose endpoints lie outside its range.
subMap
in interface NavigableMap<K,V>
fromKey
- low endpoint of the keys in the returned mapfromInclusive
- true
if the low endpoint
is to be included in the returned viewtoKey
- high endpoint of the keys in the returned maptoInclusive
- true
if the high endpoint
is to be included in the returned viewfromKey
to toKey
public NavigableMap<K,V> headMap(K toKey, boolean inclusive)
java.util.NavigableMap
inclusive
is true) toKey
. The returned
map is backed by this map, so changes in the returned map are reflected
in this map, and vice-versa. The returned map supports all optional
map operations that this map supports.
The returned map will throw an IllegalArgumentException
on an attempt to insert a key outside its range.
headMap
in interface NavigableMap<K,V>
toKey
- high endpoint of the keys in the returned mapinclusive
- true
if the high endpoint
is to be included in the returned viewinclusive
is true) toKey
public NavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
java.util.NavigableMap
inclusive
is true) fromKey
. The returned
map is backed by this map, so changes in the returned map are reflected
in this map, and vice-versa. The returned map supports all optional
map operations that this map supports.
The returned map will throw an IllegalArgumentException
on an attempt to insert a key outside its range.
tailMap
in interface NavigableMap<K,V>
fromKey
- low endpoint of the keys in the returned mapinclusive
- true
if the low endpoint
is to be included in the returned viewinclusive
is true) fromKey
protected SortedMap<K,V> standardHeadMap(K toKey)
ForwardingSortedMap.headMap(Object)
in terms of headMap(Object,
boolean)
. If you override headMap(K, boolean)
, you may wish to override headMap
to forward to this implementation.protected SortedMap<K,V> standardTailMap(K fromKey)
ForwardingSortedMap.tailMap(Object)
in terms of tailMap(Object,
boolean)
. If you override tailMap(K, boolean)
, you may wish to override tailMap
to forward to this implementation.Copyright © 2010–2020. All rights reserved.