[Java] Class LRUCache<K, V>
- org.codehaus.groovy.runtime.memoize.LRUCache
- All Implemented Interfaces and Traits:
- MemoizeCache
@ThreadSafe public final class LRUCache<K, V> extends Object implements MemoizeCache
A cache backed by a ConcurrentLinkedHashMap
Constructor Summary
Constructor and description |
---|
LRUCache
(int maxCacheSize) |
Methods Summary
Type Params | Return Type | Name and description |
---|---|---|
public void |
cleanUpNullReferences() Remove all entries holding SoftReferences to gc-evicted objects. | |
public V |
get(K key) | |
public V |
getAndPut(K key, ValueProvider<? super K, ? extends V> valueProvider) Try to get the value from cache. | |
public V |
put(K key, V value) |
Inherited Methods Summary
Methods inherited from class | Name |
---|---|
class Object | wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
Constructor Detail
public LRUCache(int maxCacheSize)
Method Detail
public void cleanUpNullReferences()
Remove all entries holding SoftReferences to gc-evicted objects.
@Override public V get(K key)
@Override public V getAndPut(K key, ValueProvider<? super K, ? extends V> valueProvider)
Try to get the value from cache. If not found, create the value by MemoizeCache.ValueProvider and put it into the cache, at last return the value. The operation is completed atomically.
- Parameters:
- key
-
valueProvider
- provide the value if the associated value not found
@Override public V put(K key, V value)
© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/3.0.7/html/gapi/org/codehaus/groovy/runtime/memoize/LRUCache.html