# Interface OrderedMap<K,V>

Type Parameters:
  `K` - the type of the keys in the map
  `V` - the type of the values in the map

All Superinterfaces:
  `Get<K,V>`, `IterableGet<K,V>`, `IterableMap<K,V>`, `Map<K,V>`, `Put<K,V>`

All Known Subinterfaces:
  `IterableSortedMap<K,V>`, `OrderedBidiMap<K,V>`, `SortedBidiMap<K,V>`, `Trie<K,V>`

All Known Implementing Classes:
  `AbstractBitwiseTrie`, `AbstractLinkedMap`, `AbstractOrderedBidiMapDecorator`, `AbstractOrderedMapDecorator`, `AbstractPatriciaTrie`, `AbstractSortedBidiMapDecorator`, `AbstractSortedMapDecorator`, `DualTreeBidiMap`, `DualTreeBidiMap.ViewMap`, `FixedSizeSortedMap`, `LinkedMap`, `ListOrderedMap`, `LRUMap`, `PatriciaTrie`, `SingletonMap`, `TreeBidiMap`, `UnmodifiableOrderedBidiMap`, `UnmodifiableOrderedMap`, `UnmodifiableSortedBidiMap`, `UnmodifiableSortedMap`, `UnmodifiableTrie`

public interface OrderedMap<K,V> extends IterableMap<K,V>
Defines a map that maintains order and allows both forward and backward iteration through that order.

Since:
  3.0

- ## Nested Class Summary

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

  `Map.Entry<K,V>`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `K`
  `firstKey()`
  Gets the first key currently in this map.
  `K`
  `lastKey()`
  Gets the last key currently in this map.
  `OrderedMapIterator<K,V>`
  `mapIterator()`
  Obtains an `OrderedMapIterator` 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.

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

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

  ### Methods inherited from interface java.util.Map

  `clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values`

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

  `clear, put, putAll`

- ## Method Details

  - ### firstKey

    K firstKey()
    Gets the first key currently in this map.
    Returns:
      the first key currently in this map
    Throws:
      `NoSuchElementException` - if this map is empty

  - ### lastKey

    K lastKey()
    Gets the last key currently in this map.
    Returns:
      the last key currently in this map
    Throws:
      `NoSuchElementException` - if this map is empty

  - ### mapIterator

    OrderedMapIterator<K,V> mapIterator()
    Obtains an `OrderedMapIterator` over the map.

    An ordered map iterator is an efficient way of iterating over maps in both directions.

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

  - ### nextKey

    K nextKey(K key)
    Gets the next key after the one specified.
    Parameters:
      `key` - the key to search for next from
    Returns:
      the next key, null if no match or at end

  - ### previousKey

    K previousKey(K key)
    Gets the previous key before the one specified.
    Parameters:
      `key` - the key to search for previous from
    Returns:
      the previous key, null if no match or at start