Class LRUCache<K,V>

java.lang.Object
com.jme3.terrain.geomipmap.LRUCache<K,V>

public class LRUCache<K,V> extends Object
An LRU cache, based on LinkedHashMap.

This cache has a fixed maximum number of elements (cacheSize). If the cache is full and another entry is added, the LRU (least recently used) entry is dropped.

This class is thread-safe. All methods of this class are synchronized.

Author: Christian d'Heureuse, Inventec Informatik AG, Zurich, Switzerland
Multi-licensed: EPL / LGPL / GPL / AL / BSD.

  • Constructor Summary

    Constructors
    Constructor
    Description
    LRUCache(int cacheSize)
    Creates a new LRU cache.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Clears the cache.
    get(K key)
    Retrieves an entry from the cache.
    The retrieved entry becomes the MRU (most recently used) entry.
    Returns a Collection that contains a copy of all cache entries.
    void
    put(K key, V value)
    Adds an entry to this cache.
    int
    Returns the number of used entries in the cache.

    Methods inherited from class java.lang.Object

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

    • LRUCache

      public LRUCache(int cacheSize)
      Creates a new LRU cache.
      Parameters:
      cacheSize - the maximum number of entries that will be kept in this cache.
  • Method Details

    • get

      public V get(K key)
      Retrieves an entry from the cache.
      The retrieved entry becomes the MRU (most recently used) entry.
      Parameters:
      key - the key whose associated value is to be returned.
      Returns:
      the value associated to this key, or null if no value with this key exists in the cache.
    • put

      public void put(K key, V value)
      Adds an entry to this cache. The new entry becomes the MRU (most recently used) entry. If an entry with the specified key already exists in the cache, it is replaced by the new entry. If the cache is full, the LRU (least recently used) entry is removed from the cache.
      Parameters:
      key - the key with which the specified value is to be associated.
      value - a value to be associated with the specified key.
    • clear

      public void clear()
      Clears the cache.
    • usedEntries

      public int usedEntries()
      Returns the number of used entries in the cache.
      Returns:
      the number of entries currently in the cache.
    • getAll

      public Collection<Map.Entry<K,V>> getAll()
      Returns a Collection that contains a copy of all cache entries.
      Returns:
      a Collection with a copy of the cache content.