Class CacheMap<K,​V>

  • Type Parameters:
    K - the key
    V - the value
    All Implemented Interfaces:
    Function<K,​V>, Map<K,​V>

    public final class CacheMap<K,​V>
    extends Object
    implements Function<K,​V>, Map<K,​V>
    Uses the provided function to compute absent values on access, theses values are memorized for future access to avoid further computations.
    Author:
    Mathias Hofer
    • Constructor Detail

      • CacheMap

        public CacheMap​(Function<K,​V> function)
        Creates an empty cache
        Parameters:
        function - the function to cache
    • Method Detail

      • apply

        public V apply​(K input)
        Specified by:
        apply in interface Function<K,​V>
      • size

        public int size()
        Specified by:
        size in interface Map<K,​V>
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface Map<K,​V>
      • containsKey

        public boolean containsKey​(Object key)
        Specified by:
        containsKey in interface Map<K,​V>
      • get

        public V get​(Object key)
        Specified by:
        get in interface Map<K,​V>
      • put

        public V put​(K key,
                     V value)
        Specified by:
        put in interface Map<K,​V>
      • remove

        public V remove​(Object key)
        Specified by:
        remove in interface Map<K,​V>
      • putAll

        public void putAll​(Map<? extends K,​? extends V> m)
        Specified by:
        putAll in interface Map<K,​V>
      • clear

        public void clear()
        Specified by:
        clear in interface Map<K,​V>
      • keySet

        public Set<K> keySet()
        Specified by:
        keySet in interface Map<K,​V>