Class Cache<K,V>

java.lang.Object
schule.ngb.zm.util.Cache<K,V>
Type Parameters:
K - Der Typ der Schlüssel.
V - Der Typ der Objekte.
All Implemented Interfaces:
Map<K,V>

public final class Cache<K,V> extends Object implements Map<K,V>
Ein Cache ist ein Map Implementation, die Inhaltsobjekte in einer Reference speichert und als Zwischenspeicher für Objekte dienen kann, deren Erstellung aufwendig ist.

Für einen Cache ist nicht garantiert, dass ein eingefügtes Objekt beim nächsten Aufruf noch vorhanden ist, da die Referenz inzwischen vom Garbage Collector gelöscht worden sein kann.

Als interne Map wird einen ConcurrentHashMap verwendet.

Ein passender Cache wird mittels der Fabrikmethoden newSoftCache() und newWeakCache() erstellt.


 Cache<String, Image> imageCache = Cache.newSoftCache();
 
  • Method Details

    • newSoftCache

      public static <K, V> Cache<K,V> newSoftCache()
      Erstellt einen Cache mit SoftReference Referenzen.
      Type Parameters:
      K - Der Typ der Schlüssel.
      V - Der Typ der Objekte.
      Returns:
      Ein Cache.
    • newWeakCache

      public static <K, V> Cache<K,V> newWeakCache()
      Erstellt einen Cache mit WeakReference Referenzen.
      Type Parameters:
      K - Der Typ der Schlüssel.
      V - Der Typ der Objekte.
      Returns:
      Ein Cache.
    • 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>
    • containsValue

      public boolean containsValue(Object value)
      Specified by:
      containsValue in interface Map<K,V>
    • get

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

      public void disableCache(K key)
      Deaktiviert das Caching für den angegebenen Schlüssel.

      Folgende Aufrufe von put(Object, Object) mit demselben Schlüssel haben keinen Effekt. Um das Caching wieder zu aktivieren, muss remove(Object) mit dem Schlüssel aufgerufen werden,

      Parameters:
      key - Der Schlüssel.
    • isCachingDisabled

      public boolean isCachingDisabled(K key)
      Prüft, ob der für den angegebenen Schlüssel zuvor disableCache(Object) aufgerufen wurde.
      Parameters:
      key - Der Schlüssel.
      Returns:
      true, wenn der Schlüssel nicht gespeichert wird.
    • 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>
    • values

      public Collection<V> values()
      Specified by:
      values in interface Map<K,V>
    • entrySet

      public Set<Map.Entry<K,V>> entrySet()
      Specified by:
      entrySet in interface Map<K,V>