Class LFUMap<K,V>
java.lang.Object
org.pentaho.reporting.libraries.base.util.LFUMap<K,V>
- All Implemented Interfaces:
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:
-
Constructor Summary
ConstructorsConstructorDescriptionLFUMap(int cacheSize) Creates a new LFU-Map with a maximum size ofcacheSizeentries. -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()clone()Return the entry for the given key.intReturns the defined maximum size.booleanisEmpty()Checks whether this map is empty.voidPuts the given value into the map using the specified non-null key.voidRemoves the entry for the given key.intsize()Returns the number of items in this map.voidvalidate()Validates the map's internal datastructures.
-
Constructor Details
-
LFUMap
public LFUMap(int cacheSize) Creates a new LFU-Map with a maximum size ofcacheSizeentries.- Parameters:
cacheSize- the maximum number of elements this map will be able to store.
-
-
Method Details
-
clear
public void clear() -
get
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
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
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
- Overrides:
clonein classObject- Throws:
CloneNotSupportedException
-