# Package org.codehaus.groovy.runtime.memoize

- Interface Summary
  Interface | Description
  --- | ---
  EvictableCache<K,​V> | Represents an evictable memoize cache with its essential methods
  EvictableCache.Action<K,​V,​R> | Represents the action to deal with the cache
  MemoizeCache<K,​V> | Represents a memoize cache with its essential methods
  MemoizeCache.ValueProvider<K,​V> | Represents a provider used to create value
  ValueConvertable<V1,​V2> | To support caches whose values are convertable, e.g.

- Class Summary
  Class | Description
  --- | ---
  CommonCache<K,​V> | Represents a simple key-value cache, which is NOT thread safe and backed by a `Map` instance
  ConcurrentCommonCache<K,​V> | Represents a simple key-value cache, which is thread safe and backed by a `Map` instance
  ConcurrentSoftCache<K,​V> | Represents concurrent cache holding SoftReference instance as value
  LRUCache<K,​V> | A cache backed by a ConcurrentLinkedHashMap
  Memoize | Implements memoize for Closures.
  NullProtectionStorage | A NullObject pattern implementation for ProtectionStorage Doesn't protect any resources.
  StampedCommonCache<K,​V> | Represents a simple key-value cache, which is thread safe and backed by a `Map` instance.
  UnlimitedConcurrentCache<K,​V> | A cache backed by a ConcurrentHashMap

- Enum Summary
  Enum | Description
  --- | ---
  EvictableCache.EvictionStrategy | Represents a eviction strategy for the cache with limited size