public class

LRUMap

extends SequencedHashMap
implements Externalizable
java.lang.Object
   ↳ org.apache.commons.collections.SequencedHashMap
     ↳ org.apache.commons.collections.LRUMap

This class is deprecated.
Moved to map subpackage. Due to be removed in v4.0.

Class Overview

An implementation of a Map which has a maximum size and uses a Least Recently Used algorithm to remove items from the Map when the maximum size is reached and new items are added.

A synchronized version can be obtained with: Collections.synchronizedMap( theMapToSynchronize ) If it will be accessed by multiple threads, you _must_ synchronize access to this Map. Even concurrent get(Object) operations produce indeterminate behaviour.

Unlike the Collections 1.0 version, this version of LRUMap does use a true LRU algorithm. The keys for all gets and puts are moved to the front of the list. LRUMap is now a subclass of SequencedHashMap, and the "LRU" key is now equivalent to LRUMap.getFirst().

Summary

Public Constructors
LRUMap()
Default constructor, primarily for the purpose of de-externalization.
LRUMap(int i)
Create a new LRUMap with a maximum capacity of i.
Public Methods
Object get(Object key)

Get the value for a key from the Map.

int getMaximumSize()
Getter for property maximumSize.
Object put(Object key, Object value)

Removes the key and its Object from the Map.

void readExternal(ObjectInput in)
Deserializes this map from the given stream.
void setMaximumSize(int maximumSize)
Setter for property maximumSize.
void writeExternal(ObjectOutput out)
Serializes this map to the given stream.
Protected Methods
void processRemovedLRU(Object key, Object value)
Subclasses of LRUMap may hook into this method to provide specialized actions whenever an Object is automatically removed from the cache.
void removeLRU()
This method is used internally by the class for finding and removing the LRU Object.
[Expand]
Inherited Methods
From class org.apache.commons.collections.SequencedHashMap
From class java.lang.Object
From interface java.io.Externalizable
From interface java.util.Map

Public Constructors

public LRUMap ()

Default constructor, primarily for the purpose of de-externalization. This constructors sets a default LRU limit of 100 keys, but this value may be overridden internally as a result of de-externalization.

public LRUMap (int i)

Create a new LRUMap with a maximum capacity of i. Once i capacity is achieved, subsequent gets and puts will push keys out of the map. See .

Parameters
i Maximum capacity of the LRUMap

Public Methods

public Object get (Object key)

Get the value for a key from the Map. The key will be promoted to the Most Recently Used position. Note that get(Object) operations will modify the underlying Collection. Calling get(Object) inside of an iteration over keys, values, etc. is currently unsupported.

Parameters
key Key to retrieve
Returns
  • Returns the value. Returns null if the key has a null value or if the key has no value.

public int getMaximumSize ()

Getter for property maximumSize.

Returns
  • Value of property maximumSize.

public Object put (Object key, Object value)

Removes the key and its Object from the Map.

(Note: this may result in the "Least Recently Used" object being removed from the Map. In that case, the removeLRU() method is called. See javadoc for removeLRU() for more details.)

Parameters
key Key of the Object to add.
value Object to add
Returns
  • Former value of the key

public void readExternal (ObjectInput in)

Deserializes this map from the given stream.

Parameters
in the stream to deserialize from

public void setMaximumSize (int maximumSize)

Setter for property maximumSize.

Parameters
maximumSize New value of property maximumSize.

public void writeExternal (ObjectOutput out)

Serializes this map to the given stream.

Parameters
out the stream to serialize to
Throws
IOException

Protected Methods

protected void processRemovedLRU (Object key, Object value)

Subclasses of LRUMap may hook into this method to provide specialized actions whenever an Object is automatically removed from the cache. By default, this method does nothing.

Parameters
key key that was removed
value value of that key (can be null)

protected void removeLRU ()

This method is used internally by the class for finding and removing the LRU Object.