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 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 class` | `EvictableCache.EvictionStrategy` | Represents a 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