Class LFUMap<K,​V>

  • All Implemented Interfaces:
    Serializable, Cloneable

    public class LFUMap<K,​V>
    extends Object
    implements Serializable, Cloneable
    A Least-Frequently-Used Map.

    This is not a real map in the sense of the Java-Collections-API. This is a slimmed down version of a Least-Frequently-Used map with no unnecessary extra stuff like iterators or other costly but rarely used java.util.Collections features. The cache does not accept null-keys, and any attempt to store null-values will yield an error.

    To remove a couple of ugly checks and thus improving performance, this map enforces a minimum size of 3 items.

    Author:
    Thomas Morgner
    See Also:
    Serialized Form
    • Constructor Detail

      • LFUMap

        public LFUMap​(int cacheSize)
        Creates a new LFU-Map with a maximum size of cacheSize entries.
        Parameters:
        cacheSize - the maximum number of elements this map will be able to store.
    • Method Detail

      • clear

        public void clear()
      • get

        public V get​(K key)
        Return the entry for the given key. Any successful lookup moves the entry to the top of the list.
        Parameters:
        key - the lookup key.
        Returns:
        the value stored for the key or null.
      • put

        public void put​(K key,
                        V value)
        Puts the given value into the map using the specified non-null key. The new entry is added as first entry in the list of recently used values.
        Parameters:
        key - the key.
        value - the value.
      • remove

        public void remove​(K key)
        Removes the entry for the given key.
        Parameters:
        key - the key for which an entry should be removed.
      • size

        public int size()
        Returns the number of items in this map.
        Returns:
        the number of items in the map.
      • isEmpty

        public boolean isEmpty()
        Checks whether this map is empty.
        Returns:
        true, if the map is empty, false otherwise.
      • getMaximumSize

        public int getMaximumSize()
        Returns the defined maximum size.
        Returns:
        the defines maximum size.
      • validate

        public void validate()
        Validates the map's internal datastructures. There should be no need to call this method manually.