Package gaiasky.util

Class LruCache<A,​B>

java.lang.Object
java.util.AbstractMap<K,​V>
java.util.HashMap<K,​V>
java.util.LinkedHashMap<A,​B>
gaiasky.util.LruCache<A,​B>
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map<A,​B>

public class LruCache<A,​B>
extends java.util.LinkedHashMap<A,​B>
Least Recently Used cache implementation
See Also:
Serialized Form
  • Nested Class Summary

    Nested classes/interfaces inherited from class java.util.AbstractMap

    java.util.AbstractMap.SimpleEntry<K extends java.lang.Object,​V extends java.lang.Object>, java.util.AbstractMap.SimpleImmutableEntry<K extends java.lang.Object,​V extends java.lang.Object>
  • Constructor Summary

    Constructors
    Constructor Description
    LruCache​(int maxEntries)  
  • Method Summary

    Modifier and Type Method Description
    protected boolean removeEldestEntry​(java.util.Map.Entry<A,​B> eldest)
    Returns true if this LruCache has more entries than the maximum specified when it was created.

    Methods inherited from class java.util.LinkedHashMap

    clear, containsValue, entrySet, forEach, get, getOrDefault, keySet, replaceAll, values

    Methods inherited from class java.util.HashMap

    clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size

    Methods inherited from class java.util.AbstractMap

    equals, hashCode, toString

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface java.util.Map

    compute, computeIfAbsent, computeIfPresent, containsKey, equals, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size
  • Constructor Details

    • LruCache

      public LruCache​(int maxEntries)
  • Method Details

    • removeEldestEntry

      protected boolean removeEldestEntry​(java.util.Map.Entry<A,​B> eldest)
      Returns true if this LruCache has more entries than the maximum specified when it was created.

      This method does not modify the underlying Map; it relies on the implementation of LinkedHashMap to do that, but that behavior is documented in the JavaDoc for LinkedHashMap.

      Overrides:
      removeEldestEntry in class java.util.LinkedHashMap<A,​B>
      Parameters:
      eldest - the Entry in question; this implementation doesn't care what it is, since the implementation is only dependent on the size of the cache
      Returns:
      true if the oldest
      See Also:
      LinkedHashMap.removeEldestEntry(Map.Entry)