com.google.common.collect

## 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:
    java.util.Map<K,V>, java.util.NavigableMap<K,V>, java.util.SortedMap<K,V>
  Enclosing class:
    ForwardingNavigableMap<K,V>

      @Beta
      protected class ForwardingNavigableMap.StandardDescendingMap
      extends ForwardingMap<K,V>

  A sensible implementation of `NavigableMap.descendingMap()` in terms of the methods of this `NavigableMap`. In many cases, you may wish to override `ForwardingNavigableMap.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 the `entryIterator()` 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`

    - ### Nested classes/interfaces inherited from interface java.util.Map

      `java.util.Map.Entry<K,V>`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ForwardingNavigableMap.StandardDescendingMap()` Constructor for use by subclasses.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Map.Entry<K,V>` | `ceilingEntry(K key)`
    `K` | `ceilingKey(K key)`
    `java.util.Comparator<? super K>` | `comparator()`
    `protected java.util.Map<K,V>` | `delegate()` Returns the backing delegate instance that methods are forwarded to.
    `java.util.NavigableSet<K>` | `descendingKeySet()`
    `java.util.NavigableMap<K,V>` | `descendingMap()`
    `protected java.util.Iterator<java.util.Map.Entry<K,V>>` | `entryIterator()`
    `java.util.Set<java.util.Map.Entry<K,V>>` | `entrySet()`
    `java.util.Map.Entry<K,V>` | `firstEntry()`
    `K` | `firstKey()`
    `java.util.Map.Entry<K,V>` | `floorEntry(K key)`
    `K` | `floorKey(K key)`
    `java.util.SortedMap<K,V>` | `headMap(K toKey)`
    `java.util.NavigableMap<K,V>` | `headMap(K toKey, boolean inclusive)`
    `java.util.Map.Entry<K,V>` | `higherEntry(K key)`
    `K` | `higherKey(K key)`
    `java.util.Set<K>` | `keySet()`
    `java.util.Map.Entry<K,V>` | `lastEntry()`
    `K` | `lastKey()`
    `java.util.Map.Entry<K,V>` | `lowerEntry(K key)`
    `K` | `lowerKey(K key)`
    `java.util.NavigableSet<K>` | `navigableKeySet()`
    `java.util.Map.Entry<K,V>` | `pollFirstEntry()`
    `java.util.Map.Entry<K,V>` | `pollLastEntry()`
    `java.util.NavigableMap<K,V>` | `subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)`
    `java.util.SortedMap<K,V>` | `subMap(K fromKey, K toKey)`
    `java.util.SortedMap<K,V>` | `tailMap(K fromKey)`
    `java.util.NavigableMap<K,V>` | `tailMap(K fromKey, boolean inclusive)`
    `java.lang.String` | `toString()` Returns the string representation generated by the delegate's `toString` method.
    `java.util.Collection<V>` | `values()`

    - ### 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, containsKey, containsValue, equals, get, hashCode, isEmpty, put, putAll, remove, size`

- - ### Constructor Detail

    - #### ForwardingNavigableMap.StandardDescendingMap

          public ForwardingNavigableMap.StandardDescendingMap()

      Constructor for use by subclasses.

  - ### Method Detail

    - #### entryIterator

          protected java.util.Iterator<java.util.Map.Entry<K,V>> entryIterator()

    - #### delegate

          protected final java.util.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 as `ForwardingSet.delegate()`. Concrete subclasses override this method to supply the instance being decorated.
      Specified by:
        `delegate` in class `ForwardingMap<K,V>`

    - #### comparator

          public java.util.Comparator<? super K> comparator()

      Specified by:
        `comparator` in interface `java.util.SortedMap<K,V>`

    - #### firstKey

          public K firstKey()

      Specified by:
        `firstKey` in interface `java.util.SortedMap<K,V>`

    - #### lastKey

          public K lastKey()

      Specified by:
        `lastKey` in interface `java.util.SortedMap<K,V>`

    - #### lowerEntry

          public java.util.Map.Entry<K,V> lowerEntry(K key)

      Specified by:
        `lowerEntry` in interface `java.util.NavigableMap<K,V>`

    - #### lowerKey

          public K lowerKey(K key)

      Specified by:
        `lowerKey` in interface `java.util.NavigableMap<K,V>`

    - #### floorEntry

          public java.util.Map.Entry<K,V> floorEntry(K key)

      Specified by:
        `floorEntry` in interface `java.util.NavigableMap<K,V>`

    - #### floorKey

          public K floorKey(K key)

      Specified by:
        `floorKey` in interface `java.util.NavigableMap<K,V>`

    - #### ceilingEntry

          public java.util.Map.Entry<K,V> ceilingEntry(K key)

      Specified by:
        `ceilingEntry` in interface `java.util.NavigableMap<K,V>`

    - #### ceilingKey

          public K ceilingKey(K key)

      Specified by:
        `ceilingKey` in interface `java.util.NavigableMap<K,V>`

    - #### higherEntry

          public java.util.Map.Entry<K,V> higherEntry(K key)

      Specified by:
        `higherEntry` in interface `java.util.NavigableMap<K,V>`

    - #### higherKey

          public K higherKey(K key)

      Specified by:
        `higherKey` in interface `java.util.NavigableMap<K,V>`

    - #### firstEntry

          public java.util.Map.Entry<K,V> firstEntry()

      Specified by:
        `firstEntry` in interface `java.util.NavigableMap<K,V>`

    - #### lastEntry

          public java.util.Map.Entry<K,V> lastEntry()

      Specified by:
        `lastEntry` in interface `java.util.NavigableMap<K,V>`

    - #### pollFirstEntry

          public java.util.Map.Entry<K,V> pollFirstEntry()

      Specified by:
        `pollFirstEntry` in interface `java.util.NavigableMap<K,V>`

    - #### pollLastEntry

          public java.util.Map.Entry<K,V> pollLastEntry()

      Specified by:
        `pollLastEntry` in interface `java.util.NavigableMap<K,V>`

    - #### descendingMap

          public java.util.NavigableMap<K,V> descendingMap()

      Specified by:
        `descendingMap` in interface `java.util.NavigableMap<K,V>`

    - #### entrySet

          public java.util.Set<java.util.Map.Entry<K,V>> entrySet()

      Specified by:
        `entrySet` in interface `java.util.Map<K,V>`
      Specified by:
        `entrySet` in interface `java.util.SortedMap<K,V>`
      Overrides:
        `entrySet` in class `ForwardingMap<K,V>`

    - #### keySet

          public java.util.Set<K> keySet()

      Specified by:
        `keySet` in interface `java.util.Map<K,V>`
      Specified by:
        `keySet` in interface `java.util.SortedMap<K,V>`
      Overrides:
        `keySet` in class `ForwardingMap<K,V>`

    - #### navigableKeySet

          public java.util.NavigableSet<K> navigableKeySet()

      Specified by:
        `navigableKeySet` in interface `java.util.NavigableMap<K,V>`

    - #### descendingKeySet

          public java.util.NavigableSet<K> descendingKeySet()

      Specified by:
        `descendingKeySet` in interface `java.util.NavigableMap<K,V>`

    - #### subMap

          public java.util.NavigableMap<K,V> subMap(K fromKey,
                                           boolean fromInclusive,
                                           K toKey,
                                           boolean toInclusive)

      Specified by:
        `subMap` in interface `java.util.NavigableMap<K,V>`

    - #### headMap

          public java.util.NavigableMap<K,V> headMap(K toKey,
                                            boolean inclusive)

      Specified by:
        `headMap` in interface `java.util.NavigableMap<K,V>`

    - #### tailMap

          public java.util.NavigableMap<K,V> tailMap(K fromKey,
                                            boolean inclusive)

      Specified by:
        `tailMap` in interface `java.util.NavigableMap<K,V>`

    - #### subMap

          public java.util.SortedMap<K,V> subMap(K fromKey,
                                        K toKey)

      Specified by:
        `subMap` in interface `java.util.NavigableMap<K,V>`
      Specified by:
        `subMap` in interface `java.util.SortedMap<K,V>`

    - #### headMap

          public java.util.SortedMap<K,V> headMap(K toKey)

      Specified by:
        `headMap` in interface `java.util.NavigableMap<K,V>`
      Specified by:
        `headMap` in interface `java.util.SortedMap<K,V>`

    - #### tailMap

          public java.util.SortedMap<K,V> tailMap(K fromKey)

      Specified by:
        `tailMap` in interface `java.util.NavigableMap<K,V>`
      Specified by:
        `tailMap` in interface `java.util.SortedMap<K,V>`

    - #### values

          public java.util.Collection<V> values()

      Specified by:
        `values` in interface `java.util.Map<K,V>`
      Specified by:
        `values` in interface `java.util.SortedMap<K,V>`
      Overrides:
        `values` in class `ForwardingMap<K,V>`

    - #### toString

          public java.lang.String toString()

      Description copied from class: `ForwardingObject`
      Returns the string representation generated by the delegate's `toString` method.
      Overrides:
        `toString` in class `ForwardingObject`