Package 

Class LRUCache

  • All Implemented Interfaces:
    java.io.Serializable , java.lang.Cloneable , java.util.Map

    
    public class LRUCache<K, V>
    extends LinkedHashMap<K, V>
                        
    • Constructor Summary

      Constructors 
      Constructor Description
      LRUCache(int cacheSize) Initializes a LRUCache with a given size using insertionorder.
      LRUCache(int cacheSize, boolean accessOrder) Initializes a LRUCache with a given size using eitherinsertion or access order depending on {@code accessOrder}.
    • Method Summary

      Modifier and Type Method Description
      static <T> Set<T> lruSet(int cacheSize, boolean accessOrder) Creates a new LRU set.
      • 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

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • LRUCache

        LRUCache(int cacheSize)
        Initializes a LRUCache with a given size using insertionorder.
        Parameters:
        cacheSize - the maximum number of entries.
      • LRUCache

        LRUCache(int cacheSize, boolean accessOrder)
        Initializes a LRUCache with a given size using eitherinsertion or access order depending on {@code accessOrder}.
        Parameters:
        cacheSize - the maximum number of entries.
        accessOrder - {@code true} to use access order, and {@code false} to use insertion order.
    • Method Detail

      • lruSet

         static <T> Set<T> lruSet(int cacheSize, boolean accessOrder)

        Creates a new LRU set. For a set with insertion order({@code accessOrder = false}), only inserting new elements in the setis taken into account. With access order, any insertion (even forelements already in the set) "touches" them.

        Parameters:
        cacheSize - the maximum number of entries.
        accessOrder - {@code true} to use access order, and {@code false} to use insertion order.