org.apache.commons.collections.map
Class ListOrderedMap
- IterableMap, Map, OrderedMap, Serializable
public class 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.
$Revision: 1.16 $ $Date: 2004/06/07 21:51:39 $- Henri Yandell
- Stephen Colebourne
protected List | insertOrder - Internal list to hold the sequence of objects
|
ListOrderedMap() - Constructs a new empty
ListOrderedMap that decorates
a HashMap .
|
ListOrderedMap(Map map) - Constructor that wraps (not copies).
|
List | asList() - Gets an unmodifiable List view of the keys which changes as the map changes.
|
void | clear()
|
static OrderedMap | decorate(Map map) - Factory method to create an ordered map.
|
Set | entrySet()
|
Object | firstKey() - Gets the first key in this map by insert order.
|
Object | get(int index) - Gets the key at the specified index.
|
Object | getValue(int index) - Gets the value at the specified index.
|
int | indexOf(Object key) - Gets the index of the specified key.
|
Set | keySet()
|
Object | lastKey() - Gets the last key in this map by insert order.
|
MapIterator | mapIterator() - Obtains a
MapIterator over the map.
|
Object | nextKey(Object key) - Gets the next key to the one specified using insert order.
|
OrderedMapIterator | orderedMapIterator() - Obtains an
OrderedMapIterator over the map.
|
Object | previousKey(Object key) - Gets the previous key to the one specified using insert order.
|
Object | put(Object key, Object value)
|
void | putAll(Map map)
|
Object | remove(Object key)
|
Object | remove(int index) - Removes the element at the specified index.
|
String | toString() - Returns the Map as a string.
|
Collection | values()
|
clear , containsKey , containsValue , entrySet , equals , get , getMap , hashCode , isEmpty , keySet , put , putAll , remove , size , toString , values |
insertOrder
protected final List insertOrder
Internal list to hold the sequence of objects
ListOrderedMap
public ListOrderedMap()
Constructs a new empty ListOrderedMap
that decorates
a HashMap
.
ListOrderedMap
protected ListOrderedMap(Map map)
Constructor that wraps (not copies).
map
- the map to decorate, must not be null
asList
public List asList()
Gets 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
java.util.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()
.
- The ordered list of keys.
decorate
public static OrderedMap decorate(Map map)
Factory method to create an ordered map.
An
ArrayList
is used to retain order.
map
- the map to decorate, must not be null
firstKey
public Object firstKey()
Gets the first key in this map by insert order.
- firstKey in interface OrderedMap
- the first key currently in this map
get
public Object get(int index)
Gets the key at the specified index.
index
- the index to retrieve
- the key at the specified index
getValue
public Object getValue(int index)
Gets the value at the specified index.
index
- the index to retrieve
- the key at the specified index
indexOf
public int indexOf(Object key)
Gets the index of the specified key.
key
- the key to find the index of
- the index, or -1 if not found
lastKey
public Object lastKey()
Gets the last key in this map by insert order.
- lastKey in interface OrderedMap
- the last key currently in this map
mapIterator
public MapIterator 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 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
nextKey
public Object nextKey(Object key)
Gets the next key to the one specified using insert order.
This method performs a list search to find the key and is O(n).
- nextKey in interface OrderedMap
key
- the key to find previous for
- the next key, null if no match or at start
orderedMapIterator
public OrderedMapIterator orderedMapIterator()
Obtains an
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
previousKey
public Object previousKey(Object key)
Gets the previous key to the one specified using insert order.
This method performs a list search to find the key and is O(n).
- previousKey in interface OrderedMap
key
- the key to find previous for
- the previous key, null if no match or at start
remove
public Object remove(int index)
Removes the element at the specified index.
index
- the index of the object to remove
- the previous value corresponding the
key
,
or null
if none existed
Copyright © 2001-2006 Apache Software Foundation. All Rights Reserved.