@ThreadSafe public final class UnlimitedConcurrentCache<K,V> extends Object implements EvictableCache<K,V>, Serializable
EvictableCache.Action<K,V,R>, EvictableCache.EvictionStrategyMemoizeCache.ValueProvider<K,V>| Constructor and Description | 
|---|
UnlimitedConcurrentCache()
Constructs a cache with unlimited size 
 | 
UnlimitedConcurrentCache(int initialCapacity)
Constructs a cache with unlimited size and set its initial capacity 
 | 
UnlimitedConcurrentCache(Map<? extends K,? extends V> m)
Constructs a cache and initialize the cache with the specified map 
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
cleanUpNullReferences()
Replying on the ConcurrentHashMap thread-safe iteration implementation the method will remove all entries holding
 SoftReferences to gc-evicted objects. 
 | 
Map<K,V> | 
clearAll()
Clear the cache 
 | 
boolean | 
containsKey(Object key)
Determines if the cache contains an entry for the specified key. 
 | 
boolean | 
containsValue(Object value)  | 
Set<Map.Entry<K,V>> | 
entrySet()  | 
V | 
get(Object key)
Gets a value from the cache 
 | 
V | 
getAndPut(K key,
         MemoizeCache.ValueProvider<? super K,? extends V> valueProvider)
Try to get the value from cache. 
 | 
boolean | 
isEmpty()  | 
Set<K> | 
keys()
Get all keys associated to cached values 
 | 
Set<K> | 
keySet()  | 
V | 
put(K key,
   V value)
Associates the specified value with the specified key in the cache. 
 | 
void | 
putAll(Map<? extends K,? extends V> m)  | 
V | 
remove(Object key)
Remove the cached value by the key 
 | 
int | 
size()
Get the size of the cache 
 | 
Collection<V> | 
values()
Get all cached values 
 | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclearcompute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAllpublic UnlimitedConcurrentCache()
public UnlimitedConcurrentCache(int initialCapacity)
initialCapacity - the initial capacitypublic Map<K,V> clearAll()
clearAll in interface EvictableCache<K,V>public Collection<V> values()
public Set<K> keys()
keys in interface EvictableCache<K,V>public boolean containsKey(Object key)
containsKey in interface Map<K,V>containsKey in interface EvictableCache<K,V>key - key whose presence in this cache is to be tested.public boolean containsValue(Object value)
containsValue in interface Map<K,V>public int size()
public V put(K key, V value)
public V getAndPut(K key, MemoizeCache.ValueProvider<? super K,? extends V> valueProvider)
MemoizeCache.ValueProvider and put it into the cache, at last return the value.getAndPut in interface MemoizeCache<K,V>key - valueProvider - provide the value if the associated value not foundpublic void cleanUpNullReferences()
cleanUpNullReferences in interface MemoizeCache<K,V>