Module org.omnifaces
Package org.omnifaces.util.cache
Class LruCache<K extends Serializable,V extends Serializable>
java.lang.Object
org.omnifaces.util.cache.LruCache<K,V>
- Type Parameters:
K- The generic map key type.V- The generic map value type.
- All Implemented Interfaces:
Serializable,ConcurrentMap<K,,V> Map<K,V>
public class LruCache<K extends Serializable,V extends Serializable>
extends Object
implements ConcurrentMap<K,V>, Serializable
Minimal implementation of thread safe LRU cache with support for eviction listener.
Inspired by ConcurrentLinkedHashMap.
- Since:
- 4.4
- Author:
- Bauke Scholtz
- See Also:
-
Nested Class Summary
-
Constructor Summary
ConstructorsConstructorDescriptionLruCache(int maximumCapacity) Construct LRU cache with given maximum capacity.LruCache(int maximumCapacity, FunctionalInterfaces.SerializableBiConsumer<K, V> evictionListener) Construct LRU cache with given maximum capacity and eviction listener. -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()booleancontainsKey(Object key) booleancontainsValue(Object value) entrySet()booleanisEmpty()keySet()voidputIfAbsent(K key, V value) booleanbooleanintsize()values()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.concurrent.ConcurrentMap
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, replaceAll
-
Constructor Details
-
LruCache
public LruCache(int maximumCapacity) Construct LRU cache with given maximum capacity.- Parameters:
maximumCapacity- The maximum capacity.- Throws:
IllegalArgumentException- when maximum capacity is less than 2.
-
LruCache
public LruCache(int maximumCapacity, FunctionalInterfaces.SerializableBiConsumer<K, V> evictionListener) Construct LRU cache with given maximum capacity and eviction listener.- Parameters:
maximumCapacity- The maximum capacity.evictionListener- The eviction listener.- Throws:
IllegalArgumentException- when maximum capacity is less than 2.
-
-
Method Details
-
get
- Specified by:
getin interfaceMap<K extends Serializable,V extends Serializable>
-
put
- Specified by:
putin interfaceMap<K extends Serializable,V extends Serializable>
-
putIfAbsent
- Specified by:
putIfAbsentin interfaceConcurrentMap<K extends Serializable,V extends Serializable> - Specified by:
putIfAbsentin interfaceMap<K extends Serializable,V extends Serializable>
-
putAll
- Specified by:
putAllin interfaceMap<K extends Serializable,V extends Serializable>
-
remove
- Specified by:
removein interfaceMap<K extends Serializable,V extends Serializable>
-
remove
- Specified by:
removein interfaceConcurrentMap<K extends Serializable,V extends Serializable> - Specified by:
removein interfaceMap<K extends Serializable,V extends Serializable>
-
replace
- Specified by:
replacein interfaceConcurrentMap<K extends Serializable,V extends Serializable> - Specified by:
replacein interfaceMap<K extends Serializable,V extends Serializable>
-
replace
- Specified by:
replacein interfaceConcurrentMap<K extends Serializable,V extends Serializable> - Specified by:
replacein interfaceMap<K extends Serializable,V extends Serializable>
-
clear
public void clear()- Specified by:
clearin interfaceMap<K extends Serializable,V extends Serializable>
-
size
public int size()- Specified by:
sizein interfaceMap<K extends Serializable,V extends Serializable>
-
isEmpty
public boolean isEmpty()- Specified by:
isEmptyin interfaceMap<K extends Serializable,V extends Serializable>
-
containsKey
- Specified by:
containsKeyin interfaceMap<K extends Serializable,V extends Serializable>
-
containsValue
- Specified by:
containsValuein interfaceMap<K extends Serializable,V extends Serializable>
-
keySet
- Specified by:
keySetin interfaceMap<K extends Serializable,V extends Serializable>
-
values
- Specified by:
valuesin interfaceMap<K extends Serializable,V extends Serializable>
-
entrySet
- Specified by:
entrySetin interfaceMap<K extends Serializable,V extends Serializable>
-