-
- All Implemented Interfaces:
-
java.io.Serializable,java.lang.Cloneable,java.util.Map
public class LRUCache<K, V> extends LinkedHashMap<K, V>
-
-
Method Summary
Modifier and Type Method Description static <T> Set<T>lruSet(int cacheSize, boolean accessOrder)Creates a new LRU set. -
Methods inherited from class java.util.LinkedHashMap
clear, containsValue, entrySet, forEach, get, getOrDefault, keySet, replaceAll, values -
Methods inherited from class java.util.HashMap
clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size -
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Constructor Detail
-
LRUCache
LRUCache(int cacheSize)
Initializes a LRUCache with a given size using insertionorder.- Parameters:
cacheSize- the maximum number of entries.
-
LRUCache
LRUCache(int cacheSize, boolean accessOrder)
Initializes a LRUCache with a given size using eitherinsertion or access order depending on{@code accessOrder}.- Parameters:
cacheSize- the maximum number of entries.accessOrder-{@code true}to use access order, and{@code false}to use insertion order.
-
-
Method Detail
-
lruSet
static <T> Set<T> lruSet(int cacheSize, boolean accessOrder)
Creates a new LRU set. For a set with insertion order(
{@code accessOrder = false}), only inserting new elements in the setis taken into account. With access order, any insertion (even forelements already in the set) "touches" them.- Parameters:
cacheSize- the maximum number of entries.accessOrder-{@code true}to use access order, and{@code false}to use insertion order.
-
-
-
-