Interface MemoizeCache<K,V>
- Type Parameters:
K
- type of the keysV
- type of the values
- All Known Subinterfaces:
EvictableCache<K,
V>
- All Known Implementing Classes:
CommonCache
,ConcurrentCommonCache
,ConcurrentSoftCache
,LRUCache
,StampedCommonCache
,UnlimitedConcurrentCache
public interface MemoizeCache<K,V>
Represents a memoize cache with its essential methods
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Represents a provider used to create value -
Method Summary
Modifier and TypeMethodDescriptionvoid
Invoked when some of the held SoftReferences have been evicted by the garbage collector and so should be removed from the cache.Gets a value from the cachedefault V
getAndPut
(K key, MemoizeCache.ValueProvider<? super K, ? extends V> valueProvider) Try to get the value from cache.Associates the specified value with the specified key in the cache.
-
Method Details
-
put
Associates the specified value with the specified key in the cache.- Parameters:
key
- key with which the specified value is to be associatedvalue
- value to be associated with the specified key- Returns:
- null, or the old value if the key associated with the specified key.
-
get
Gets a value from the cache- Parameters:
key
- the key whose associated value is to be returned- Returns:
- the value, or null, if it does not exist.
-
getAndPut
Try to get the value from cache. If not found, create the value byMemoizeCache.ValueProvider
and put it into the cache, at last return the value.- Parameters:
key
- the key to look upvalueProvider
- provide the value if the associated value not found- Returns:
- the cached value
-
cleanUpNullReferences
void cleanUpNullReferences()Invoked when some of the held SoftReferences have been evicted by the garbage collector and so should be removed from the cache. The implementation must ensure that concurrent invocations of all methods on the cache may occur from other threads and thus should protect any shared resources.
-