|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.collections.map.AbstractMapDecorator
org.apache.commons.collections.map.ListOrderedMap
Decorates a 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.
This class is Serializable from Commons Collections 3.1.
Nested Class Summary |
Nested classes inherited from class java.util.Map |
java.util.Map.Entry |
Field Summary | |
protected java.util.List |
insertOrder
Internal list to hold the sequence of objects |
Fields inherited from class org.apache.commons.collections.map.AbstractMapDecorator |
map |
Constructor Summary | |
|
ListOrderedMap()
Constructs a new empty ListOrderedMap that decorates
a HashMap . |
protected |
ListOrderedMap(java.util.Map map)
Constructor that wraps (not copies). |
Method Summary | |
java.util.List |
asList()
Gets an unmodifiable List view of the keys which changes as the map changes. |
void |
clear()
|
static OrderedMap |
decorate(java.util.Map map)
Factory method to create an ordered map. |
java.util.Set |
entrySet()
|
java.lang.Object |
firstKey()
Gets the first key in this map by insert order. |
java.lang.Object |
get(int index)
Gets the key at the specified index. |
java.lang.Object |
getValue(int index)
Gets the value at the specified index. |
int |
indexOf(java.lang.Object key)
Gets the index of the specified key. |
java.util.Set |
keySet()
|
java.lang.Object |
lastKey()
Gets the last key in this map by insert order. |
MapIterator |
mapIterator()
Obtains a MapIterator over the map. |
java.lang.Object |
nextKey(java.lang.Object key)
Gets the next key to the one specified using insert order. |
OrderedMapIterator |
orderedMapIterator()
Obtains an OrderedMapIterator over the map. |
java.lang.Object |
previousKey(java.lang.Object key)
Gets the previous key to the one specified using insert order. |
java.lang.Object |
put(java.lang.Object key,
java.lang.Object value)
|
void |
putAll(java.util.Map map)
|
java.lang.Object |
remove(int index)
Removes the element at the specified index. |
java.lang.Object |
remove(java.lang.Object key)
|
java.lang.String |
toString()
Returns the Map as a string. |
java.util.Collection |
values()
|
Methods inherited from class org.apache.commons.collections.map.AbstractMapDecorator |
containsKey, containsValue, equals, get, getMap, hashCode, isEmpty, size |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.util.Map |
containsKey, containsValue, equals, get, hashCode, isEmpty, size |
Field Detail |
protected final java.util.List insertOrder
Constructor Detail |
public ListOrderedMap()
ListOrderedMap
that decorates
a HashMap
.
protected ListOrderedMap(java.util.Map map)
map
- the map to decorate, must not be null
java.lang.IllegalArgumentException
- if map is nullMethod Detail |
public static OrderedMap decorate(java.util.Map map)
An ArrayList
is used to retain order.
map
- the map to decorate, must not be null
java.lang.IllegalArgumentException
- if map is nullpublic MapIterator mapIterator()
IterableMap
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 cast to Map Entry objects.
IterableMap map = new HashedMap(); MapIterator it = map.mapIterator(); while (it.hasNext()) { Object key = it.next(); Object value = it.getValue(); it.setValue("newValue"); }
mapIterator
in interface IterableMap
public OrderedMapIterator orderedMapIterator()
OrderedMap
OrderedMapIterator
over the map.
A ordered map iterator is an efficient way of iterating over maps in both directions.
BidiMap map = new TreeBidiMap(); MapIterator it = map.mapIterator(); while (it.hasNext()) { Object key = it.next(); Object value = it.getValue(); it.setValue("newValue"); Object previousKey = it.previous(); }
orderedMapIterator
in interface OrderedMap
public java.lang.Object firstKey()
firstKey
in interface OrderedMap
java.util.NoSuchElementException
- if this map is emptypublic java.lang.Object lastKey()
lastKey
in interface OrderedMap
java.util.NoSuchElementException
- if this map is emptypublic java.lang.Object nextKey(java.lang.Object key)
nextKey
in interface OrderedMap
key
- the key to find previous for
public java.lang.Object previousKey(java.lang.Object key)
previousKey
in interface OrderedMap
key
- the key to find previous for
public java.lang.Object put(java.lang.Object key, java.lang.Object value)
put
in interface java.util.Map
put
in class AbstractMapDecorator
public void putAll(java.util.Map map)
putAll
in interface java.util.Map
putAll
in class AbstractMapDecorator
public java.lang.Object remove(java.lang.Object key)
remove
in interface java.util.Map
remove
in class AbstractMapDecorator
public void clear()
clear
in interface java.util.Map
clear
in class AbstractMapDecorator
public java.util.Set keySet()
keySet
in interface java.util.Map
keySet
in class AbstractMapDecorator
public java.util.Collection values()
values
in interface java.util.Map
values
in class AbstractMapDecorator
public java.util.Set entrySet()
entrySet
in interface java.util.Map
entrySet
in class AbstractMapDecorator
public java.lang.String toString()
toString
in class AbstractMapDecorator
public java.lang.Object get(int index)
index
- the index to retrieve
java.lang.IndexOutOfBoundsException
- if the index is invalidpublic java.lang.Object getValue(int index)
index
- the index to retrieve
java.lang.IndexOutOfBoundsException
- if the index is invalidpublic int indexOf(java.lang.Object key)
key
- the key to find the index of
public java.lang.Object remove(int index)
index
- the index of the object to remove
key
,
or null
if none existed
java.lang.IndexOutOfBoundsException
- if the index is invalidpublic java.util.List asList()
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 keySet()
.
keySet()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |