[Java] Interface MemoizeCache<K, V>
public interface MemoizeCache<K, V>
Represents a memoize cache with its essential methods
- Type Parameters:
-
K
- type of the keys -
V
- type of the values
Nested Class Summary
Modifiers | Name | Description |
---|---|---|
interface | MemoizeCache.ValueProvider | Represents a provider used to create value |
Methods Summary
Type Params | Return Type | Name and description |
---|---|---|
public void |
cleanUpNullReferences() Invoked when some of the held SoftReferences have been evicted by the garbage collector and so should be removed from the cache. | |
public V |
get(K key) Gets a value from the cache | |
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) Associates the specified value with the specified key in the cache. |
Method Detail
public 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.
public V get(K key)
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.
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 ValueProvider and put it into the cache, at last return the value.
- Parameters:
- key
-
valueProvider
- provide the value if the associated value not found
- Returns:
- the cached value
public V put(K key, V value)
Associates the specified value with the specified key in the cache.
- Parameters:
-
key
- key with which the specified value is to be associated -
value
- value to be associated with the specified key
- Returns:
- null, or the old value if the key associated with the specified key.
© 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/MemoizeCache.html