Class 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>, IterableMap<K,V>, IterableSortedMap<K,V>, OrderedMap<K,V>
Direct Known Subclasses:
DualTreeBidiMap.ViewMap

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
  • Constructor Details

    • 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 Details

    • 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 OrderedMap<K,V>
      Specified by:
      firstKey in interface SortedMap<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 OrderedMap<K,V>
      Specified by:
      lastKey in interface SortedMap<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 IterableMap<K,V>
      Specified by:
      mapIterator in interface OrderedMap<K,V>
      Overrides:
      mapIterator in class AbstractIterableMap<K,V>
      Returns:
      a map iterator