org.apache.commons.collections4.map

## Class AbstractSortedMapDecorator<K,V>

- java.lang.Object
- - org.apache.commons.collections4.map.AbstractIterableMap<K,V>
  - - org.apache.commons.collections4.map.AbstractMapDecorator<K,V>
    - - org.apache.commons.collections4.map.AbstractSortedMapDecorator<K,V>

- Type Parameters:
    `K` - the type of the keys in the map
    `V` - the type of the values in the map
  All Implemented Interfaces:
    Map<K,V>, SortedMap<K,V>, Get<K,V>, IterableGet<K,V>, IterableMap<K,V>, IterableSortedMap<K,V>, OrderedMap<K,V>, Put<K,V>
  Direct Known Subclasses:
    DualTreeBidiMap.ViewMap, FixedSizeSortedMap, UnmodifiableSortedMap

      public abstract class AbstractSortedMapDecorator<K,V>
      extends AbstractMapDecorator<K,V>
      implements IterableSortedMap<K,V>

  Provides a base decorator that enables additional functionality to be added to a Map via decoration.

  Methods are forwarded directly to the decorated map.

  This implementation does not perform any special processing with the map views. Instead it simply returns the set/collection from the wrapped map. This may be undesirable, for example if you are trying to write a validating implementation it would provide a loophole around the validation. But, you might want that loophole, so this class is kept simple.

  Since:
    3.0

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `AbstractSortedMapDecorator.SortedMapIterator<K,V>` OrderedMapIterator implementation.

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

      `Map.Entry<K,V>`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractSortedMapDecorator()` Constructor only used in deserialization, do not use otherwise.
    `` | `AbstractSortedMapDecorator(SortedMap<K,V> map)` Constructor that wraps (not copies).

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Comparator<? super K>` | `comparator()`
    `protected SortedMap<K,V>` | `decorated()` Gets the map being decorated.
    `K` | `firstKey()` Gets the first key currently in this map.
    `SortedMap<K,V>` | `headMap(K toKey)`
    `K` | `lastKey()` Gets the last key currently in this map.
    `OrderedMapIterator<K,V>` | `mapIterator()` Obtains a `MapIterator` over the map.
    `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<K,V>` | `subMap(K fromKey, K toKey)`
    `SortedMap<K,V>` | `tailMap(K fromKey)`

    - ### Methods inherited from class org.apache.commons.collections4.map.AbstractMapDecorator

      `clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, toString, values`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.SortedMap

      `entrySet, keySet, values`

    - ### 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, replaceAll, size`

    - ### Methods inherited from interface org.apache.commons.collections4.Put

      `clear, put, putAll`

    - ### Methods inherited from interface org.apache.commons.collections4.Get

      `containsKey, containsValue, entrySet, get, isEmpty, keySet, remove, size, values`

- - ### Constructor Detail

    - #### AbstractSortedMapDecorator

          protected AbstractSortedMapDecorator()

      Constructor only used in deserialization, do not use otherwise.
      Since:
        3.1

    - #### AbstractSortedMapDecorator

          public AbstractSortedMapDecorator(SortedMap<K,V> map)

      Constructor that wraps (not copies).
      Parameters:
        `map` - the map to decorate, must not be null
      Throws:
        `NullPointerException` - if the map is null

  - ### Method Detail

    - #### decorated

          protected SortedMap<K,V> decorated()

      Gets the map being decorated.
      Overrides:
        `decorated` in class `AbstractMapDecorator<K,V>`
      Returns:
        the decorated map

    - #### comparator

          public Comparator<? super K> comparator()

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

    - #### firstKey

          public K firstKey()

      Description copied from interface: `OrderedMap`
      Gets the first key currently in this map.
      Specified by:
        `firstKey` in interface `SortedMap<K,V>`
      Specified by:
        `firstKey` in interface `OrderedMap<K,V>`
      Returns:
        the first key currently in this map

    - #### lastKey

          public K lastKey()

      Description copied from interface: `OrderedMap`
      Gets the last key currently in this map.
      Specified by:
        `lastKey` in interface `SortedMap<K,V>`
      Specified by:
        `lastKey` in interface `OrderedMap<K,V>`
      Returns:
        the last key currently in this map

    - #### subMap

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

      Specified by:
        `subMap` in interface `SortedMap<K,V>`

    - #### headMap

          public SortedMap<K,V> headMap(K toKey)

      Specified by:
        `headMap` in interface `SortedMap<K,V>`

    - #### tailMap

          public SortedMap<K,V> tailMap(K fromKey)

      Specified by:
        `tailMap` in interface `SortedMap<K,V>`

    - #### previousKey

          public K previousKey(K key)

      Description copied from interface: `OrderedMap`
      Gets the previous key before the one specified.
      Specified by:
        `previousKey` in interface `OrderedMap<K,V>`
      Parameters:
        `key` - the key to search for previous from
      Returns:
        the previous key, null if no match or at start

    - #### nextKey

          public K nextKey(K key)

      Description copied from interface: `OrderedMap`
      Gets the next key after the one specified.
      Specified by:
        `nextKey` in interface `OrderedMap<K,V>`
      Parameters:
        `key` - the key to search for next from
      Returns:
        the next key, null if no match or at end

    - #### mapIterator

          public OrderedMapIterator<K,V> mapIterator()

      Obtains a `MapIterator` over the map.

      A map iterator is an efficient way of iterating over maps. There is no need to access the entry set or use Map Entry objects.

           IterableMap<String,Integer> map = new HashedMap<String,Integer>();
           MapIterator<String,Integer> it = map.mapIterator();
           while (it.hasNext()) {
             String key = it.next();
             Integer value = it.getValue();
             it.setValue(value + 1);
           }

      Specified by:
        `mapIterator` in interface `IterableGet<K,V>`
      Specified by:
        `mapIterator` in interface `OrderedMap<K,V>`
      Overrides:
        `mapIterator` in class `AbstractIterableMap<K,V>`
      Returns:
        a map iterator

Copyright © 2001–2019 The Apache Software Foundation. All rights reserved.