| org.apache.commons.collections.map.AbstractHashedMap org.apache.commons.collections.map.AbstractLinkedMap
All known Subclasses: org.apache.commons.collections.map.LinkedMap, org.apache.commons.collections.map.LRUMap,
AbstractLinkedMap | public class AbstractLinkedMap extends AbstractHashedMap implements OrderedMap(Code) | | An abstract implementation of a hash-based map that links entries to create an
ordered map and which provides numerous points for subclasses to override.
This class implements all the features necessary for a subclass linked
hash-based map. Key-value entries are stored in instances of the
LinkEntry class which can be overridden and replaced.
The iterators can similarly be replaced, without the need to replace the KeySet,
EntrySet and Values view classes.
Overridable methods are provided to change the default hashing behaviour, and
to change how entries are added to and removed from the map. Hopefully, all you
need for unusual subclasses is here.
This implementation maintains order by original insertion, but subclasses
may work differently. The OrderedMap interface is implemented
to provide access to bidirectional iteration and extra convenience methods.
The orderedMapIterator() method provides direct access to a
bidirectional iterator. The iterators from the other views can also be cast
to OrderedIterator if required.
All the available iterators can be reset back to the start by casting to
ResettableIterator and calling reset() .
The implementation is also designed to be subclassed, with lots of useful
methods exposed.
since: Commons Collections 3.0 version: $Revision: 158688 $ $Date: 2005-03-22 22:14:15 +0000 (Tue, 22 Mar 2005) $ author: java util LinkedHashMap author: Stephen Colebourne |
Inner Class :protected static class LinkMapIterator extends LinkIterator implements OrderedMapIterator | |
Inner Class :protected static class EntrySetIterator extends LinkIterator | |
Inner Class :protected static class KeySetIterator extends EntrySetIterator | |
Inner Class :protected static class ValuesIterator extends LinkIterator | |
Inner Class :protected static class LinkEntry extends HashEntry | |
Field Summary | |
protected transient LinkEntry | header |
Constructor Summary | |
protected | AbstractLinkedMap() Constructor only used in deserialization, do not use otherwise. | protected | AbstractLinkedMap(int initialCapacity, float loadFactor, int threshold) Constructor which performs no validation on the passed in parameters. | protected | AbstractLinkedMap(int initialCapacity) Constructs a new, empty map with the specified initial capacity. | protected | AbstractLinkedMap(int initialCapacity, float loadFactor) Constructs a new, empty map with the specified initial capacity and
load factor. | protected | AbstractLinkedMap(Map map) Constructor copying elements from another map. |
Method Summary | |
protected void | addEntry(HashEntry entry, int hashIndex) Adds an entry into this map, maintaining insertion order. | public void | clear() Clears the map, resetting the size to zero and nullifying references
to avoid garbage collection issues. | public boolean | containsValue(Object value) Checks whether the map contains the specified value. | protected HashEntry | createEntry(HashEntry next, int hashCode, Object key, Object value) Creates an entry to store the data. | protected Iterator | createEntrySetIterator() Creates an entry set iterator. | protected Iterator | createKeySetIterator() Creates a key set iterator. | protected Iterator | createValuesIterator() Creates a values iterator. | protected LinkEntry | entryAfter(LinkEntry entry) Gets the after field from a LinkEntry . | protected LinkEntry | entryBefore(LinkEntry entry) Gets the before field from a LinkEntry . | public Object | firstKey() Gets the first key in the map, which is the most recently inserted. | protected LinkEntry | getEntry(int index) Gets the key at the specified index. | protected void | init() Initialise this subclass during construction. | public Object | lastKey() Gets the last key in the map, which is the first inserted. | public MapIterator | mapIterator() Gets an iterator over the map.
Changes made to the iterator affect this map.
A MapIterator returns the keys in the map. | public Object | nextKey(Object key) Gets the next key in sequence. | public OrderedMapIterator | orderedMapIterator() Gets a bidirectional iterator over the map.
Changes made to the iterator affect this map.
A MapIterator returns the keys in the map. | public Object | previousKey(Object key) Gets the previous key in sequence. | protected void | removeEntry(HashEntry entry, int hashIndex, HashEntry previous) Removes an entry from the map and the linked list. |
header | protected transient LinkEntry header(Code) | | Header in the linked list
|
AbstractLinkedMap | protected AbstractLinkedMap()(Code) | | Constructor only used in deserialization, do not use otherwise.
|
AbstractLinkedMap | protected AbstractLinkedMap(int initialCapacity, float loadFactor, int threshold)(Code) | | Constructor which performs no validation on the passed in parameters.
Parameters: initialCapacity - the initial capacity, must be a power of two Parameters: loadFactor - the load factor, must be > 0.0f and generally < 1.0f Parameters: threshold - the threshold, must be sensible |
AbstractLinkedMap | protected AbstractLinkedMap(int initialCapacity)(Code) | | Constructs a new, empty map with the specified initial capacity.
Parameters: initialCapacity - the initial capacity throws: IllegalArgumentException - if the initial capacity is less than one |
AbstractLinkedMap | protected AbstractLinkedMap(int initialCapacity, float loadFactor)(Code) | | Constructs a new, empty map with the specified initial capacity and
load factor.
Parameters: initialCapacity - the initial capacity Parameters: loadFactor - the load factor throws: IllegalArgumentException - if the initial capacity is less than one throws: IllegalArgumentException - if the load factor is less than zero |
AbstractLinkedMap | protected AbstractLinkedMap(Map map)(Code) | | Constructor copying elements from another map.
Parameters: map - the map to copy throws: NullPointerException - if the map is null |
addEntry | protected void addEntry(HashEntry entry, int hashIndex)(Code) | | Adds an entry into this map, maintaining insertion order.
This implementation adds the entry to the data storage table and
to the end of the linked list.
Parameters: entry - the entry to add Parameters: hashIndex - the index into the data array to store at |
clear | public void clear()(Code) | | Clears the map, resetting the size to zero and nullifying references
to avoid garbage collection issues.
|
containsValue | public boolean containsValue(Object value)(Code) | | Checks whether the map contains the specified value.
Parameters: value - the value to search for true if the map contains the value |
createEntry | protected HashEntry createEntry(HashEntry next, int hashCode, Object key, Object value)(Code) | | Creates an entry to store the data.
This implementation creates a new LinkEntry instance.
Parameters: next - the next entry in sequence Parameters: hashCode - the hash code to use Parameters: key - the key to store Parameters: value - the value to store the newly created entry |
createEntrySetIterator | protected Iterator createEntrySetIterator()(Code) | | Creates an entry set iterator.
Subclasses can override this to return iterators with different properties.
the entrySet iterator |
createKeySetIterator | protected Iterator createKeySetIterator()(Code) | | Creates a key set iterator.
Subclasses can override this to return iterators with different properties.
the keySet iterator |
createValuesIterator | protected Iterator createValuesIterator()(Code) | | Creates a values iterator.
Subclasses can override this to return iterators with different properties.
the values iterator |
entryAfter | protected LinkEntry entryAfter(LinkEntry entry)(Code) | | Gets the after field from a LinkEntry .
Used in subclasses that have no visibility of the field.
Parameters: entry - the entry to query, must not be null the after field of the entry throws: NullPointerException - if the entry is null since: Commons Collections 3.1 |
entryBefore | protected LinkEntry entryBefore(LinkEntry entry)(Code) | | Gets the before field from a LinkEntry .
Used in subclasses that have no visibility of the field.
Parameters: entry - the entry to query, must not be null the before field of the entry throws: NullPointerException - if the entry is null since: Commons Collections 3.1 |
firstKey | public Object firstKey()(Code) | | Gets the first key in the map, which is the most recently inserted.
the most recently inserted key |
getEntry | protected LinkEntry getEntry(int index)(Code) | | Gets the key at the specified index.
Parameters: index - the index to retrieve the key at the specified index throws: IndexOutOfBoundsException - if the index is invalid |
lastKey | public Object lastKey()(Code) | | Gets the last key in the map, which is the first inserted.
the eldest key |
mapIterator | public MapIterator mapIterator()(Code) | | Gets an iterator over the map.
Changes made to the iterator affect this map.
A MapIterator returns the keys in the map. It also provides convenient
methods to get the key and value, and set the value.
It avoids the need to create an entrySet/keySet/values object.
the map iterator |
nextKey | public Object nextKey(Object key)(Code) | | Gets the next key in sequence.
Parameters: key - the key to get after the next key |
orderedMapIterator | public OrderedMapIterator orderedMapIterator()(Code) | | Gets a bidirectional iterator over the map.
Changes made to the iterator affect this map.
A MapIterator returns the keys in the map. It also provides convenient
methods to get the key and value, and set the value.
It avoids the need to create an entrySet/keySet/values object.
the map iterator |
previousKey | public Object previousKey(Object key)(Code) | | Gets the previous key in sequence.
Parameters: key - the key to get before the previous key |
removeEntry | protected void removeEntry(HashEntry entry, int hashIndex, HashEntry previous)(Code) | | Removes an entry from the map and the linked list.
This implementation removes the entry from the linked list chain, then
calls the superclass implementation.
Parameters: entry - the entry to remove Parameters: hashIndex - the index into the data structure Parameters: previous - the previous entry in the chain |
Methods inherited from org.apache.commons.collections.map.AbstractHashedMap | protected void addEntry(HashEntry entry, int hashIndex)(Code)(Java Doc) protected void addMapping(int hashIndex, int hashCode, Object key, Object value)(Code)(Java Doc) protected int calculateNewCapacity(int proposedCapacity)(Code)(Java Doc) protected int calculateThreshold(int newCapacity, float factor)(Code)(Java Doc) protected void checkCapacity()(Code)(Java Doc) public void clear()(Code)(Java Doc) protected Object clone()(Code)(Java Doc) public boolean containsKey(Object key)(Code)(Java Doc) public boolean containsValue(Object value)(Code)(Java Doc) protected Object convertKey(Object key)(Code)(Java Doc) protected HashEntry createEntry(HashEntry next, int hashCode, Object key, Object value)(Code)(Java Doc) protected Iterator createEntrySetIterator()(Code)(Java Doc) protected Iterator createKeySetIterator()(Code)(Java Doc) protected Iterator createValuesIterator()(Code)(Java Doc) protected void destroyEntry(HashEntry entry)(Code)(Java Doc) protected void doReadObject(ObjectInputStream in) throws IOException, ClassNotFoundException(Code)(Java Doc) protected void doWriteObject(ObjectOutputStream out) throws IOException(Code)(Java Doc) protected void ensureCapacity(int newCapacity)(Code)(Java Doc) protected int entryHashCode(HashEntry entry)(Code)(Java Doc) protected Object entryKey(HashEntry entry)(Code)(Java Doc) protected HashEntry entryNext(HashEntry entry)(Code)(Java Doc) public Set entrySet()(Code)(Java Doc) protected Object entryValue(HashEntry entry)(Code)(Java Doc) public boolean equals(Object obj)(Code)(Java Doc) public Object get(Object key)(Code)(Java Doc) protected HashEntry getEntry(Object key)(Code)(Java Doc) protected int hash(Object key)(Code)(Java Doc) public int hashCode()(Code)(Java Doc) protected int hashIndex(int hashCode, int dataSize)(Code)(Java Doc) protected void init()(Code)(Java Doc) public boolean isEmpty()(Code)(Java Doc) protected boolean isEqualKey(Object key1, Object key2)(Code)(Java Doc) protected boolean isEqualValue(Object value1, Object value2)(Code)(Java Doc) public Set keySet()(Code)(Java Doc) public MapIterator mapIterator()(Code)(Java Doc) public Object put(Object key, Object value)(Code)(Java Doc) public void putAll(Map map)(Code)(Java Doc) public Object remove(Object key)(Code)(Java Doc) protected void removeEntry(HashEntry entry, int hashIndex, HashEntry previous)(Code)(Java Doc) protected void removeMapping(HashEntry entry, int hashIndex, HashEntry previous)(Code)(Java Doc) protected void reuseEntry(HashEntry entry, int hashIndex, int hashCode, Object key, Object value)(Code)(Java Doc) public int size()(Code)(Java Doc) public String toString()(Code)(Java Doc) protected void updateEntry(HashEntry entry, Object newValue)(Code)(Java Doc) public Collection values()(Code)(Java Doc)
|
|
|