Class ListOrderedMap<K,V> 
- Type Parameters:
- K- the type of the keys in this map
- V- the type of the values in this map
- All Implemented Interfaces:
- Serializable,- Map<K,,- V> - Get<K,,- V> - IterableGet<K,,- V> - IterableMap<K,,- V> - OrderedMap<K,,- V> - Put<K,- V> 
Map to ensure that the order of addition is retained
 using a List to maintain order.
 
 The order will be used via the iterators and toArray methods on the views.
 The order is also returned by the MapIterator.
 The orderedMapIterator() method accesses an iterator that can
 iterate both forwards and backwards through the map.
 In addition, non-interface methods are provided to access the map by index.
 
If an object is added to the Map for a second time, it will remain in the original position in the iteration.
 Note that ListOrderedMap is not synchronized and is not thread-safe.
 If you wish to use this map from multiple threads concurrently, you must use
 appropriate synchronization. The simplest approach is to wrap this map
 using Collections.synchronizedMap(Map). This class may throw
 exceptions when accessed by concurrent threads without synchronization.
 
 Note that ListOrderedMap doesn't work with
 IdentityHashMap, CaseInsensitiveMap,
 or similar maps that violate the general contract of Map.
 The ListOrderedMap (or, more precisely, the underlying List)
 is relying on equals(). This is fine, as long as the
 decorated Map is also based on equals(),
 and hashCode(), which
 IdentityHashMap, and
 CaseInsensitiveMap don't: The former uses ==, and
 the latter uses equals() on a lower-cased
 key.
 
 This class is Serializable starting with Commons Collections 3.1.
 
- Since:
- 3.0
- See Also:
- 
Nested Class Summary
- 
Constructor SummaryConstructorsModifierConstructorDescriptionConstructs a new emptyListOrderedMapthat decorates aHashMap.protectedListOrderedMap(Map<K, V> map) Constructor that wraps (not copies).
- 
Method SummaryModifier and TypeMethodDescriptionasList()Gets an unmodifiable List view of the keys which changes as the map changes.voidclear()Removes all of the mappings from this map.entrySet()Gets a view over the entries in the map.firstKey()Gets the first key in this map by insert order.get(int index) Gets the key at the specified index.getValue(int index) Gets the value at the specified index.intGets the index of the specified key.keyList()Gets a view over the keys in the map as a List.keySet()Gets a view over the keys in the map.lastKey()Gets the last key in this map by insert order.static <K,V> ListOrderedMap <K, V> listOrderedMap(Map<K, V> map) Factory method to create an ordered map.Obtains aMapIteratorover the map.Gets the next key to the one specified using insert order.previousKey(Object key) Gets the previous key to the one specified using insert order.Puts a key-value mapping into the map at the specified index.Associates the specified value with the specified key in this map.voidPuts the values contained in a supplied Map into the Map starting at the specified index.voidCopies all of the mappings from the specified map to this map.remove(int index) Removes the element at the specified index.Remove a key-value mappings.Sets the value at the specified index.toString()Returns the Map as a string.Gets a view over the values in the map as a List.values()Gets a view over the values in the map.Methods inherited from class org.apache.commons.collections4.map.AbstractMapDecoratorcontainsKey, containsValue, decorated, equals, get, hashCode, isEmpty, sizeMethods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.commons.collections4.GetcontainsKey, containsValue, get, isEmpty, sizeMethods inherited from interface java.util.Mapcompute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, putIfAbsent, remove, replace, replace, replaceAll, size
- 
Constructor Details- 
ListOrderedMap
- 
ListOrderedMapConstructor that wraps (not copies).- Parameters:
- map- the map to decorate, must not be null
- Throws:
- NullPointerException- if map is null
 
 
- 
- 
Method Details- 
listOrderedMapFactory method to create an ordered map.An ArrayListis used to retain order.- Type Parameters:
- K- the key type
- V- the value type
- Parameters:
- map- the map to decorate, must not be null
- Returns:
- a new list ordered map
- Throws:
- NullPointerException- if map is null
- Since:
- 4.0
 
- 
asListGets an unmodifiable List view of the keys which changes as the map changes.The returned list is unmodifiable because changes to the values of the list (using ListIterator.set(Object)) will effectively remove the value from the list and reinsert that value at the end of the list, which is an unexpected side effect of changing the value of a list. This occurs because changing the key, changes when the mapping is added to the map and thus where it appears in the list.An alternative to this method is to use the better named keyList()orkeySet().- Returns:
- The ordered list of keys.
- See Also:
 
- 
clear
- 
entrySetGets a view over the entries in the map.The Set will be ordered by object insertion into the map. 
- 
firstKeyGets the first key in this map by insert order.- Specified by:
- firstKeyin interface- OrderedMap<K,- V> 
- Returns:
- the first key currently in this map
- Throws:
- NoSuchElementException- if this map is empty
 
- 
getGets the key at the specified index.- Parameters:
- index- the index to retrieve
- Returns:
- the key at the specified index
- Throws:
- IndexOutOfBoundsException- if the index is invalid
 
- 
getValueGets the value at the specified index.- Parameters:
- index- the index to retrieve
- Returns:
- the key at the specified index
- Throws:
- IndexOutOfBoundsException- if the index is invalid
 
- 
indexOf
- 
keyList
- 
keySetGets a view over the keys in the map.The Collection will be ordered by object insertion into the map. 
- 
lastKeyGets the last key in this map by insert order.- Specified by:
- lastKeyin interface- OrderedMap<K,- V> 
- Returns:
- the last key currently in this map
- Throws:
- NoSuchElementException- if this map is empty
 
- 
mapIteratorDescription copied from class:AbstractIterableMapObtains aMapIteratorover 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:
- mapIteratorin interface- IterableGet<K,- V> 
- Specified by:
- mapIteratorin interface- OrderedMap<K,- V> 
- Overrides:
- mapIteratorin class- AbstractIterableMap<K,- V> 
- Returns:
- a map iterator
 
- 
nextKeyGets the next key to the one specified using insert order. This method performs a list search to find the key and is O(n).- Specified by:
- nextKeyin interface- OrderedMap<K,- V> 
- Parameters:
- key- the key to find previous for
- Returns:
- the next key, null if no match or at start
 
- 
previousKeyGets the previous key to the one specified using insert order. This method performs a list search to find the key and is O(n).- Specified by:
- previousKeyin interface- OrderedMap<K,- V> 
- Parameters:
- key- the key to find previous for
- Returns:
- the previous key, null if no match or at start
 
- 
putPuts a key-value mapping into the map at the specified index.If the map already contains the key, then the original mapping is removed and the new mapping added at the specified index. The remove may change the effect of the index. The index is always calculated relative to the original state of the map. Thus, the steps are: (1) remove the existing key-value mapping, then (2) insert the new key-value mapping at the position it would have been inserted had the remove not occurred. - Parameters:
- index- the index at which the mapping should be inserted
- key- the key
- value- the value
- Returns:
- the value previously mapped to the key
- Throws:
- IndexOutOfBoundsException- if the index is out of range [0, size]
- Since:
- 3.2
 
- 
putDescription copied from interface:PutAssociates the specified value with the specified key in this map.Note that the return type is Object, rather than V as in the Map interface. See the class Javadoc for further info. - Specified by:
- putin interface- Map<K,- V> 
- Specified by:
- putin interface- Put<K,- V> 
- Overrides:
- putin class- AbstractMapDecorator<K,- V> 
- Parameters:
- key- key with which the specified value is to be associated
- value- value to be associated with the specified key
- Returns:
- the previous value associated with key, ornullif there was no mapping forkey. (Anullreturn can also indicate that the map previously associatednullwithkey, if the implementation supportsnullvalues.)
- See Also:
 
- 
putAllPuts the values contained in a supplied Map into the Map starting at the specified index.- Parameters:
- index- the index in the Map to start at.
- map- the Map containing the entries to be added.
- Throws:
- IndexOutOfBoundsException- if the index is out of range [0, size]
 
- 
putAllDescription copied from interface:PutCopies all of the mappings from the specified map to this map.
- 
removeRemoves the element at the specified index.- Parameters:
- index- the index of the object to remove
- Returns:
- the removed value, or nullif none existed
- Throws:
- IndexOutOfBoundsException- if the index is invalid
 
- 
removeDescription copied from interface:GetRemove a key-value mappings.- Specified by:
- removein interface- Get<K,- V> 
- Specified by:
- removein interface- Map<K,- V> 
- Overrides:
- removein class- AbstractMapDecorator<K,- V> 
- Parameters:
- key- key whose mapping is to be removed from the map
- Returns:
- the previous value associated with key, ornullif there was no mapping forkey.
- See Also:
 
- 
setValueSets the value at the specified index.- Parameters:
- index- the index of the value to set
- value- the new value to set
- Returns:
- the previous value at that index
- Throws:
- IndexOutOfBoundsException- if the index is invalid
- Since:
- 3.2
 
- 
toString
- 
valueList
- 
valuesGets a view over the values in the map.The Collection will be ordered by object insertion into the map. From Commons Collections 3.2, this Collection can be cast to a list, see valueList()
 
-