Class LRUMap
- java.lang.Object
-
- java.util.AbstractMap
-
- org.apache.commons.collections.map.AbstractHashedMap
-
- org.apache.commons.collections.map.AbstractLinkedMap
-
- org.apache.commons.collections.map.LRUMap
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,java.util.Map
,BoundedMap
,IterableMap
,OrderedMap
@Deprecated(since="2021-04-30") public class LRUMap extends AbstractLinkedMap implements BoundedMap, java.io.Serializable, java.lang.Cloneable
Deprecated.Commons Collections 3 is in maintenance mode. Commons Collections 4 should be used instead.AMap
implementation with a fixed maximum size which removes the least recently used entry if an entry is added when full.The least recently used algorithm works on the get and put operations only. Iteration of any kind, including setting the value by iteration, does not change the order. Queries such as containsKey and containsValue or access via views also do not change the order.
The map implements
OrderedMap
and entries may be queried using the bidirectionalOrderedMapIterator
. The order returned is least recently used to most recently used. Iterators from map views can also be cast toOrderedIterator
if required.All the available iterators can be reset back to the start by casting to
ResettableIterator
and callingreset()
.Note that LRUMap 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 throwNullPointerException
's when accessed by concurrent threads.- Since:
- Commons Collections 3.0 (previously in main package v1.0)
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description LRUMap()
Deprecated.Constructs a new empty map with a maximum size of 100.LRUMap(int maxSize)
Deprecated.Constructs a new, empty map with the specified maximum size.LRUMap(int maxSize, boolean scanUntilRemovable)
Deprecated.Constructs a new, empty map with the specified maximum size.LRUMap(int maxSize, float loadFactor)
Deprecated.Constructs a new, empty map with the specified initial capacity and load factor.LRUMap(int maxSize, float loadFactor, boolean scanUntilRemovable)
Deprecated.Constructs a new, empty map with the specified initial capacity and load factor.LRUMap(java.util.Map map)
Deprecated.Constructor copying elements from another map.LRUMap(java.util.Map map, boolean scanUntilRemovable)
Deprecated.Constructor copying elements from another map.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description java.lang.Object
clone()
Deprecated.Clones the map without cloning the keys or values.java.lang.Object
get(java.lang.Object key)
Deprecated.Gets the value mapped to the key specified.boolean
isFull()
Deprecated.Returns true if this map is full and no new mappings can be added.boolean
isScanUntilRemovable()
Deprecated.Whether this LRUMap will scan until a removable entry is found when the map is full.int
maxSize()
Deprecated.Gets the maximum size of the map (the bound).-
Methods inherited from class org.apache.commons.collections.map.AbstractLinkedMap
clear, containsValue, firstKey, lastKey, mapIterator, nextKey, orderedMapIterator, previousKey
-
-
-
-
Constructor Detail
-
LRUMap
public LRUMap()
Deprecated.Constructs a new empty map with a maximum size of 100.
-
LRUMap
public LRUMap(int maxSize)
Deprecated.Constructs a new, empty map with the specified maximum size.- Parameters:
maxSize
- the maximum size of the map- Throws:
java.lang.IllegalArgumentException
- if the maximum size is less than one
-
LRUMap
public LRUMap(int maxSize, boolean scanUntilRemovable)
Deprecated.Constructs a new, empty map with the specified maximum size.- Parameters:
maxSize
- the maximum size of the mapscanUntilRemovable
- scan until a removeable entry is found, default false- Throws:
java.lang.IllegalArgumentException
- if the maximum size is less than one- Since:
- Commons Collections 3.1
-
LRUMap
public LRUMap(int maxSize, float loadFactor)
Deprecated.Constructs a new, empty map with the specified initial capacity and load factor.- Parameters:
maxSize
- the maximum size of the map, -1 for no limit,loadFactor
- the load factor- Throws:
java.lang.IllegalArgumentException
- if the maximum size is less than onejava.lang.IllegalArgumentException
- if the load factor is less than zero
-
LRUMap
public LRUMap(int maxSize, float loadFactor, boolean scanUntilRemovable)
Deprecated.Constructs a new, empty map with the specified initial capacity and load factor.- Parameters:
maxSize
- the maximum size of the map, -1 for no limit,loadFactor
- the load factorscanUntilRemovable
- scan until a removeable entry is found, default false- Throws:
java.lang.IllegalArgumentException
- if the maximum size is less than onejava.lang.IllegalArgumentException
- if the load factor is less than zero- Since:
- Commons Collections 3.1
-
LRUMap
public LRUMap(java.util.Map map)
Deprecated.Constructor copying elements from another map.The maximum size is set from the map's size.
- Parameters:
map
- the map to copy- Throws:
java.lang.NullPointerException
- if the map is nulljava.lang.IllegalArgumentException
- if the map is empty
-
LRUMap
public LRUMap(java.util.Map map, boolean scanUntilRemovable)
Deprecated.Constructor copying elements from another map. The maximum size is set from the map's size.- Parameters:
map
- the map to copyscanUntilRemovable
- scan until a removeable entry is found, default false- Throws:
java.lang.NullPointerException
- if the map is nulljava.lang.IllegalArgumentException
- if the map is empty- Since:
- Commons Collections 3.1
-
-
Method Detail
-
get
public java.lang.Object get(java.lang.Object key)
Deprecated.Gets the value mapped to the key specified.This operation changes the position of the key in the map to the most recently used position (first).
- Specified by:
get
in interfacejava.util.Map
- Overrides:
get
in classAbstractHashedMap
- Parameters:
key
- the key- Returns:
- the mapped value, null if no match
-
isFull
public boolean isFull()
Deprecated.Returns true if this map is full and no new mappings can be added.- Specified by:
isFull
in interfaceBoundedMap
- Returns:
true
if the map is full
-
maxSize
public int maxSize()
Deprecated.Gets the maximum size of the map (the bound).- Specified by:
maxSize
in interfaceBoundedMap
- Returns:
- the maximum number of elements the map can hold
-
isScanUntilRemovable
public boolean isScanUntilRemovable()
Deprecated.Whether this LRUMap will scan until a removable entry is found when the map is full.- Returns:
- true if this map scans
- Since:
- Commons Collections 3.1
-
clone
public java.lang.Object clone()
Deprecated.Clones the map without cloning the keys or values.- Returns:
- a shallow clone
-
-