Class LFUMap<K,V>
- java.lang.Object
-
- org.pentaho.reporting.libraries.base.util.LFUMap<K,V>
-
- All Implemented Interfaces:
Serializable
,Cloneable
public class LFUMap<K,V> extends Object implements Serializable, Cloneable
A Least-Frequently-Used Map. This is not a real map in the sense of the Java-Collections-API. This is a slimmed down version of a Least-Frequently-Used map with no unnecessary extra stuff like iterators or other costly but rarely used java.util.Collections features. The cache does not accept null-keys, and any attempt to store null-values will yield an error. To remove a couple of ugly checks and thus improving performance, this map enforces a minimum size of 3 items.- Author:
- Thomas Morgner
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description LFUMap(int cacheSize)
Creates a new LFU-Map with a maximum size ofcacheSize
entries.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
Object
clone()
V
get(K key)
Return the entry for the given key.int
getMaximumSize()
Returns the defined maximum size.boolean
isEmpty()
Checks whether this map is empty.void
put(K key, V value)
Puts the given value into the map using the specified non-null key.void
remove(K key)
Removes the entry for the given key.int
size()
Returns the number of items in this map.void
validate()
Validates the map's internal datastructures.
-
-
-
Method Detail
-
clear
public void clear()
-
get
public V get(K key)
Return the entry for the given key. Any successful lookup moves the entry to the top of the list.- Parameters:
key
- the lookup key.- Returns:
- the value stored for the key or null.
-
put
public void put(K key, V value)
Puts the given value into the map using the specified non-null key. The new entry is added as first entry in the list of recently used values.- Parameters:
key
- the key.value
- the value.
-
remove
public void remove(K key)
Removes the entry for the given key.- Parameters:
key
- the key for which an entry should be removed.
-
size
public int size()
Returns the number of items in this map.- Returns:
- the number of items in the map.
-
isEmpty
public boolean isEmpty()
Checks whether this map is empty.- Returns:
- true, if the map is empty, false otherwise.
-
getMaximumSize
public int getMaximumSize()
Returns the defined maximum size.- Returns:
- the defines maximum size.
-
validate
public void validate()
Validates the map's internal datastructures. There should be no need to call this method manually.
-
clone
public Object clone() throws CloneNotSupportedException
- Overrides:
clone
in classObject
- Throws:
CloneNotSupportedException
-
-