Class ForwardingNavigableMap.StandardDescendingMap
- java.lang.Object
-
- com.google.common.collect.ForwardingObject
-
- com.google.common.collect.ForwardingMap<K,V>
-
- com.google.common.collect.ForwardingNavigableMap.StandardDescendingMap
-
- All Implemented Interfaces:
Map<K,V>
,NavigableMap<K,V>
,SortedMap<K,V>
@Beta protected class ForwardingNavigableMap.StandardDescendingMap extends ForwardingMap<K,V>
A sensible implementation ofNavigableMap.descendingMap()
in terms of the methods of thisNavigableMap
. In many cases, you may wish to overrideForwardingNavigableMap.descendingMap()
to forward to this implementation or a subclass thereof.In particular, this map iterates over entries with repeated calls to
NavigableMap.lowerEntry(K)
. If a more efficient means of iteration is available, you may wish to override theentryIterator()
method of this class.- Since:
- 12.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.google.common.collect.ForwardingMap
ForwardingMap.StandardEntrySet, ForwardingMap.StandardKeySet, ForwardingMap.StandardValues
-
-
Constructor Summary
Constructors Constructor Description StandardDescendingMap()
Constructor for use by subclasses.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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, ornull
if there is no such key.K
ceilingKey(K key)
Returns the least key greater than or equal to the given key, ornull
if there is no such key.Comparator<? super K>
comparator()
Returns the comparator used to order the keys in this map, ornull
if this map uses the natural ordering of its keys.protected Map<K,V>
delegate()
Returns the backing delegate instance that methods are forwarded to.NavigableSet<K>
descendingKeySet()
Returns a reverse orderNavigableSet
view of the keys contained in this map.NavigableMap<K,V>
descendingMap()
Returns a reverse order view of the mappings contained in this map.protected Iterator<Map.Entry<K,V>>
entryIterator()
Set<Map.Entry<K,V>>
entrySet()
Returns aSet
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, ornull
if the map is empty.K
firstKey()
Returns the first (lowest) key currently in this map.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, ornull
if there is no such key.K
floorKey(K key)
Returns the greatest key less than or equal to the given key, ornull
if there is no such key.SortedMap<K,V>
headMap(K toKey)
Returns a view of the portion of this map whose keys are strictly less thantoKey
.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, ifinclusive
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, ornull
if there is no such key.K
higherKey(K key)
Returns the least key strictly greater than the given key, ornull
if there is no such key.Set<K>
keySet()
Returns aSet
view of the keys contained in this map.Map.Entry<K,V>
lastEntry()
Returns a key-value mapping associated with the greatest key in this map, ornull
if the map is empty.K
lastKey()
Returns the last (highest) key currently in this map.Map.Entry<K,V>
lowerEntry(K key)
Returns a key-value mapping associated with the greatest key strictly less than the given key, ornull
if there is no such key.K
lowerKey(K key)
Returns the greatest key strictly less than the given key, ornull
if there is no such key.NavigableSet<K>
navigableKeySet()
Returns aNavigableSet
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, ornull
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, ornull
if the map is empty.void
replaceAll(BiFunction<? super K,? super V,? extends V> function)
Replaces each entry's value with the result of invoking the given function on that entry until all entries have been processed or the function throws an exception.NavigableMap<K,V>
subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
Returns a view of the portion of this map whose keys range fromfromKey
totoKey
.SortedMap<K,V>
subMap(K fromKey, K toKey)
Returns a view of the portion of this map whose keys range fromfromKey
, inclusive, totoKey
, exclusive.SortedMap<K,V>
tailMap(K fromKey)
Returns a view of the portion of this map whose keys are greater than or equal tofromKey
.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, ifinclusive
is true)fromKey
.String
toString()
Returns the string representation generated by the delegate'stoString
method.Collection<V>
values()
Returns aCollection
view of the values contained in this map.-
Methods inherited from class com.google.common.collect.ForwardingMap
clear, containsKey, containsValue, equals, get, hashCode, isEmpty, put, putAll, remove, size, standardClear, standardContainsKey, standardContainsValue, standardEquals, standardHashCode, standardIsEmpty, standardPutAll, standardRemove, standardToString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Map
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size
-
-
-
-
Constructor Detail
-
StandardDescendingMap
public StandardDescendingMap()
Constructor for use by subclasses.
-
-
Method Detail
-
replaceAll
public void replaceAll(BiFunction<? super K,? super V,? extends V> function)
Description copied from interface:java.util.Map
Replaces each entry's value with the result of invoking the given function on that entry until all entries have been processed or the function throws an exception. Exceptions thrown by the function are relayed to the caller.- Parameters:
function
- the function to apply to each entry
-
entryIterator
protected Iterator<Map.Entry<K,V>> entryIterator()
-
delegate
protected final Map<K,V> delegate()
Description copied from class:ForwardingObject
Returns the backing delegate instance that methods are forwarded to. Abstract subclasses generally override this method with an abstract method that has a more specific return type, such asForwardingSet.delegate()
. Concrete subclasses override this method to supply the instance being decorated.
-
comparator
public Comparator<? super K> comparator()
Description copied from interface:java.util.SortedMap
Returns the comparator used to order the keys in this map, ornull
if this map uses the natural ordering of its keys.
-
firstKey
public K firstKey()
Description copied from interface:java.util.SortedMap
Returns the first (lowest) key currently in this map.
-
lastKey
public K lastKey()
Description copied from interface:java.util.SortedMap
Returns the last (highest) key currently in this map.
-
lowerEntry
@CheckForNull public Map.Entry<K,V> lowerEntry(K key)
Description copied from interface:java.util.NavigableMap
Returns a key-value mapping associated with the greatest key strictly less than the given key, ornull
if there is no such key.- Specified by:
lowerEntry
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Parameters:
key
- the key- Returns:
- an entry with the greatest key less than
key
, ornull
if there is no such key
-
lowerKey
@CheckForNull public K lowerKey(K key)
Description copied from interface:java.util.NavigableMap
Returns the greatest key strictly less than the given key, ornull
if there is no such key.
-
floorEntry
@CheckForNull public Map.Entry<K,V> floorEntry(K key)
Description copied from interface:java.util.NavigableMap
Returns a key-value mapping associated with the greatest key less than or equal to the given key, ornull
if there is no such key.- Specified by:
floorEntry
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Parameters:
key
- the key- Returns:
- an entry with the greatest key less than or equal to
key
, ornull
if there is no such key
-
floorKey
@CheckForNull public K floorKey(K key)
Description copied from interface:java.util.NavigableMap
Returns the greatest key less than or equal to the given key, ornull
if there is no such key.
-
ceilingEntry
@CheckForNull public Map.Entry<K,V> ceilingEntry(K key)
Description copied from interface:java.util.NavigableMap
Returns a key-value mapping associated with the least key greater than or equal to the given key, ornull
if there is no such key.- Specified by:
ceilingEntry
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Parameters:
key
- the key- Returns:
- an entry with the least key greater than or equal to
key
, ornull
if there is no such key
-
ceilingKey
@CheckForNull public K ceilingKey(K key)
Description copied from interface:java.util.NavigableMap
Returns the least key greater than or equal to the given key, ornull
if there is no such key.- Specified by:
ceilingKey
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Parameters:
key
- the key- Returns:
- the least key greater than or equal to
key
, ornull
if there is no such key
-
higherEntry
@CheckForNull public Map.Entry<K,V> higherEntry(K key)
Description copied from interface:java.util.NavigableMap
Returns a key-value mapping associated with the least key strictly greater than the given key, ornull
if there is no such key.- Specified by:
higherEntry
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Parameters:
key
- the key- Returns:
- an entry with the least key greater than
key
, ornull
if there is no such key
-
higherKey
@CheckForNull public K higherKey(K key)
Description copied from interface:java.util.NavigableMap
Returns the least key strictly greater than the given key, ornull
if there is no such key.
-
firstEntry
@CheckForNull public Map.Entry<K,V> firstEntry()
Description copied from interface:java.util.NavigableMap
Returns a key-value mapping associated with the least key in this map, ornull
if the map is empty.- Specified by:
firstEntry
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Returns:
- an entry with the least key,
or
null
if this map is empty
-
lastEntry
@CheckForNull public Map.Entry<K,V> lastEntry()
Description copied from interface:java.util.NavigableMap
Returns a key-value mapping associated with the greatest key in this map, ornull
if the map is empty.
-
pollFirstEntry
@CheckForNull public Map.Entry<K,V> pollFirstEntry()
Description copied from interface:java.util.NavigableMap
Removes and returns a key-value mapping associated with the least key in this map, ornull
if the map is empty.- Specified by:
pollFirstEntry
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Returns:
- the removed first entry of this map,
or
null
if this map is empty
-
pollLastEntry
@CheckForNull public Map.Entry<K,V> pollLastEntry()
Description copied from interface:java.util.NavigableMap
Removes and returns a key-value mapping associated with the greatest key in this map, ornull
if the map is empty.- Specified by:
pollLastEntry
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Returns:
- the removed last entry of this map,
or
null
if this map is empty
-
descendingMap
public NavigableMap<K,V> descendingMap()
Description copied from interface:java.util.NavigableMap
Returns a reverse order view of the mappings contained in this map. The descending map is backed by this map, so changes to the map are reflected in the descending map, and vice-versa. If either map is modified while an iteration over a collection view of either map is in progress (except through the iterator's ownremove
operation), the results of the iteration are undefined.The returned map has an ordering equivalent to
Collections.reverseOrder
(comparator())
. The expressionm.descendingMap().descendingMap()
returns a view ofm
essentially equivalent tom
.- Specified by:
descendingMap
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Returns:
- a reverse order view of this map
-
entrySet
public Set<Map.Entry<K,V>> entrySet()
Description copied from interface:java.util.Map
Returns aSet
view of the mappings contained in this map. 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 ownremove
operation, or through thesetValue
operation on a map entry returned by the iterator) the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via theIterator.remove
,Set.remove
,removeAll
,retainAll
andclear
operations. It does not support theadd
oraddAll
operations.- Specified by:
entrySet
in interfaceMap<K extends @Nullable Object,V extends @Nullable Object>
- Specified by:
entrySet
in interfaceSortedMap<K extends @Nullable Object,V extends @Nullable Object>
- Overrides:
entrySet
in classForwardingMap<K extends @Nullable Object,V extends @Nullable Object>
- Returns:
- a set view of the mappings contained in this map
-
keySet
public Set<K> keySet()
Description copied from interface:java.util.Map
Returns aSet
view of the keys contained in this map. 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 ownremove
operation), the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via theIterator.remove
,Set.remove
,removeAll
,retainAll
, andclear
operations. It does not support theadd
oraddAll
operations.- Specified by:
keySet
in interfaceMap<K extends @Nullable Object,V extends @Nullable Object>
- Specified by:
keySet
in interfaceSortedMap<K extends @Nullable Object,V extends @Nullable Object>
- Overrides:
keySet
in classForwardingMap<K extends @Nullable Object,V extends @Nullable Object>
- Returns:
- a set view of the keys contained in this map
-
navigableKeySet
public NavigableSet<K> navigableKeySet()
Description copied from interface:java.util.NavigableMap
Returns aNavigableSet
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 ownremove
operation), the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via theIterator.remove
,Set.remove
,removeAll
,retainAll
, andclear
operations. It does not support theadd
oraddAll
operations.- Specified by:
navigableKeySet
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Returns:
- a navigable set view of the keys in this map
-
descendingKeySet
public NavigableSet<K> descendingKeySet()
Description copied from interface:java.util.NavigableMap
Returns a reverse orderNavigableSet
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 ownremove
operation), the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via theIterator.remove
,Set.remove
,removeAll
,retainAll
, andclear
operations. It does not support theadd
oraddAll
operations.- Specified by:
descendingKeySet
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Returns:
- a reverse order navigable set view of the keys in this map
-
subMap
public NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
Description copied from interface:java.util.NavigableMap
Returns a view of the portion of this map whose keys range fromfromKey
totoKey
. IffromKey
andtoKey
are equal, the returned map is empty unlessfromInclusive
andtoInclusive
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.- Specified by:
subMap
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Parameters:
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 view- Returns:
- a view of the portion of this map whose keys range from
fromKey
totoKey
-
subMap
public SortedMap<K,V> subMap(K fromKey, K toKey)
Description copied from interface:java.util.NavigableMap
Returns a view of the portion of this map whose keys range fromfromKey
, inclusive, totoKey
, exclusive. (IffromKey
andtoKey
are equal, the returned map is empty.) 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.Equivalent to
subMap(fromKey, true, toKey, false)
.- Specified by:
subMap
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Specified by:
subMap
in interfaceSortedMap<K extends @Nullable Object,V extends @Nullable Object>
- Parameters:
fromKey
- low endpoint (inclusive) of the keys in the returned maptoKey
- high endpoint (exclusive) of the keys in the returned map- Returns:
- a view of the portion of this map whose keys range from
fromKey
, inclusive, totoKey
, exclusive
-
headMap
public NavigableMap<K,V> headMap(K toKey, boolean inclusive)
Description copied from interface:java.util.NavigableMap
Returns a view of the portion of this map whose keys are less than (or equal to, ifinclusive
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.- Specified by:
headMap
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Parameters:
toKey
- high endpoint of the keys in the returned mapinclusive
-true
if the high endpoint is to be included in the returned view- Returns:
- a view of the portion of this map whose keys are less than
(or equal to, if
inclusive
is true)toKey
-
headMap
public SortedMap<K,V> headMap(K toKey)
Description copied from interface:java.util.NavigableMap
Returns a view of the portion of this map whose keys are strictly less thantoKey
. 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.Equivalent to
headMap(toKey, false)
.- Specified by:
headMap
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Specified by:
headMap
in interfaceSortedMap<K extends @Nullable Object,V extends @Nullable Object>
- Parameters:
toKey
- high endpoint (exclusive) of the keys in the returned map- Returns:
- a view of the portion of this map whose keys are strictly
less than
toKey
-
tailMap
public NavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
Description copied from interface:java.util.NavigableMap
Returns a view of the portion of this map whose keys are greater than (or equal to, ifinclusive
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.- Specified by:
tailMap
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Parameters:
fromKey
- low endpoint of the keys in the returned mapinclusive
-true
if the low endpoint is to be included in the returned view- Returns:
- a view of the portion of this map whose keys are greater than
(or equal to, if
inclusive
is true)fromKey
-
tailMap
public SortedMap<K,V> tailMap(K fromKey)
Description copied from interface:java.util.NavigableMap
Returns a view of the portion of this map whose keys are greater than or equal tofromKey
. 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.Equivalent to
tailMap(fromKey, true)
.- Specified by:
tailMap
in interfaceNavigableMap<K extends @Nullable Object,V extends @Nullable Object>
- Specified by:
tailMap
in interfaceSortedMap<K extends @Nullable Object,V extends @Nullable Object>
- Parameters:
fromKey
- low endpoint (inclusive) of the keys in the returned map- Returns:
- a view of the portion of this map whose keys are greater
than or equal to
fromKey
-
values
public Collection<V> values()
Description copied from interface:java.util.Map
Returns aCollection
view of the values contained in this map. The collection is backed by the map, so changes to the map are reflected in the collection, and vice-versa. If the map is modified while an iteration over the collection is in progress (except through the iterator's ownremove
operation), the results of the iteration are undefined. The collection supports element removal, which removes the corresponding mapping from the map, via theIterator.remove
,Collection.remove
,removeAll
,retainAll
andclear
operations. It does not support theadd
oraddAll
operations.- Specified by:
values
in interfaceMap<K extends @Nullable Object,V extends @Nullable Object>
- Specified by:
values
in interfaceSortedMap<K extends @Nullable Object,V extends @Nullable Object>
- Overrides:
values
in classForwardingMap<K extends @Nullable Object,V extends @Nullable Object>
- Returns:
- a collection view of the values contained in this map
-
toString
public String toString()
Description copied from class:ForwardingObject
Returns the string representation generated by the delegate'stoString
method.- Overrides:
toString
in classForwardingObject
- Returns:
- a string representation of the object.
-
-