Package org.codehaus.groovy.runtime.memoize

# Interface EvictableCache<K,V>

Type Parameters:
  `K` - type of the keys
  `V` - type of the values

All Superinterfaces:
  `Map<K,V>`, `MemoizeCache<K,V>`

All Known Subinterfaces:
  `FlexibleCache<K,V>`

All Known Implementing Classes:
  `CommonCache`, `ConcurrentCommonCache`, `ConcurrentSoftCache`, `StampedCommonCache`, `UnlimitedConcurrentCache`

public interface EvictableCache<K,V> extends MemoizeCache<K,V>, Map<K,V>
Represents an evictable memoize cache with its essential methods

Since:
  2.5.0

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static interface`
  `EvictableCache.Action<K,V,R>`
  Represents the action to deal with the cache
  `static enum`
  `EvictableCache.EvictionStrategy`
  Represents an eviction strategy for the cache with limited size

  ## Nested classes/interfaces inherited from interface java.util.Map

  `Map.Entry<K extends Object,V extends Object>`

  ## Nested classes/interfaces inherited from interface org.codehaus.groovy.runtime.memoize.MemoizeCache

  `MemoizeCache.ValueProvider<K,V>`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default void`
  `clear()`
  Clear the cache
  `Map<K,V>`
  `clearAll()`
  Clear the cache
  `boolean`
  `containsKey(Object key)`
  Determines if the cache contains an entry for the specified key.
  `Set<K>`
  `keys()`
  Get all keys associated to cached values
  `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

  ### Methods inherited from interface java.util.Map

  `compute, computeIfAbsent, computeIfPresent, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, replace, replace, replaceAll`

  ### Methods inherited from interface org.codehaus.groovy.runtime.memoize.MemoizeCache

  `cleanUpNullReferences, get, getAndPut, put`

- ## Method Details

  - ### remove

    V remove(Object key)
    Remove the cached value by the key
    Specified by:
      `remove` in interface `Map<K,V>`
    Parameters:
      `key` - of the cached value
    Returns:
      returns the removed value

  - ### clearAll

    Map<K,V> clearAll()
    Clear the cache
    Returns:
      returns the content of the cleared map

  - ### clear

    default void clear()
    Clear the cache
    Specified by:
      `clear` in interface `Map<K,V>`
    See Also:
      - `clearAll()`

  - ### values

    Collection<V> values()
    Get all cached values
    Specified by:
      `values` in interface `Map<K,V>`
    Returns:
      all cached values

  - ### keys

    Set<K> keys()
    Get all keys associated to cached values
    Returns:
      all keys

  - ### containsKey

    boolean containsKey(Object key)
    Determines if the cache contains an entry for the specified key.
    Specified by:
      `containsKey` in interface `Map<K,V>`
    Parameters:
      `key` - key whose presence in this cache is to be tested.
    Returns:
      true if the cache contains a mapping for the specified key

  - ### size

    int size()
    Get the size of the cache
    Specified by:
      `size` in interface `Map<K,V>`
    Returns:
      the size of the cache