net.ranides.assira.collection.map
Class Cache<K,V>
java.lang.Object
java.util.AbstractMap<K,V>
net.ranides.assira.collection.map.Cache<K,V>
- Type Parameters:
K - V -
- All Implemented Interfaces:
- Map<K,V>
public class Cache<K,V>
- extends AbstractMap<K,V>
Kolekcja zaprojektowana jako podręczna pamięć na obiekty, których koszt
utworzenia jest relatywnie wysoki. Kolekcja przechowuje holdsize
ostatnio używanych elementów, bez względu na to, czy istnieją inne referencje
do nich. Przez "użycie" rozumiemy dowolną operację zapis lub odczytu.
W szczególności taka strategia pozwala polegać na metodzie "containsKey",
która uchroni wartość przed natychmiastowym usunięciem - jeśli tylko stwierdzono,
że klucz istnieje. Dodatkowo kolekcja przechowuje cachesize elementów
za pomocą WeakReference - obiekty te mogą zostać zwolnione przez GC, jeśli
zajdzie taka potrzeba.
Uwaga: wszystkie widoki zwracane przez "cache" są niebezpieczne w tym sensie,
że nie można wywoływać żadnej metody na obiekcie "cache" w czasie
iterowania po widoku. Jest to spowodowane tym, że cache uwzględnia czas dostępu
do obiektów: nawet odczyt zmienia wewnętrzną reprezentację. W efekcie, jeśli
podczas iteracji zostanie wywołana jakakolwiek inna metoda, to zostanie rzucone
ConcurentModificationException.
- Author:
- ranides
| Nested classes/interfaces inherited from interface java.util.Map |
Map.Entry<K,V> |
|
Constructor Summary |
Cache()
Tworzy cache, który przechowuje maksymalnie 1024 elementy, w tym 32
ostatnio użyte są chronione przez usunięciem przez GC. |
Cache(int cachesize)
Tworzy cache, którzy przechowuje cachesize ostatnio używanych
elementów, bez względu na to, czy istnieją do nich inne referencje. |
Cache(int cachesize,
int holdsize)
Tworzy cache, którzy przechowuje cachesize ostatnio używanych
elementów, w tym chroni przez usunięciem przez GC ostatnie holdsize
elementów. |
Cache
public Cache()
- Tworzy cache, który przechowuje maksymalnie 1024 elementy, w tym 32
ostatnio użyte są chronione przez usunięciem przez GC.
Cache
public Cache(int cachesize)
- Tworzy cache, którzy przechowuje
cachesize ostatnio używanych
elementów, bez względu na to, czy istnieją do nich inne referencje.
- Parameters:
cachesize - ilość przechowywanych elementów
Cache
public Cache(int cachesize,
int holdsize)
- Tworzy cache, którzy przechowuje
cachesize ostatnio używanych
elementów, w tym chroni przez usunięciem przez GC ostatnie holdsize
elementów.
- Parameters:
cachesize - ilość przechowywanych elementówholdsize - ilość elementów chronionych przed GC
containsKey
public boolean containsKey(Object key)
- Specified by:
containsKey in interface Map<K,V>- Overrides:
containsKey in class AbstractMap<K,V>
get
public V get(Object key)
- Specified by:
get in interface Map<K,V>- Overrides:
get in class AbstractMap<K,V>
put
public V put(K key,
V value)
- Specified by:
put in interface Map<K,V>- Overrides:
put in class AbstractMap<K,V>
remove
public V remove(Object key)
- Specified by:
remove in interface Map<K,V>- Overrides:
remove in class AbstractMap<K,V>
clear
public void clear()
- Specified by:
clear in interface Map<K,V>- Overrides:
clear in class AbstractMap<K,V>
size
public int size()
- Specified by:
size in interface Map<K,V>- Overrides:
size in class AbstractMap<K,V>
entrySet
public Set<Map.Entry<K,V>> entrySet()
- Specified by:
entrySet in interface Map<K,V>- Specified by:
entrySet in class AbstractMap<K,V>
keySet
public Set<K> keySet()
- Specified by:
keySet in interface Map<K,V>- Overrides:
keySet in class AbstractMap<K,V>
values
public Collection<V> values()
- Specified by:
values in interface Map<K,V>- Overrides:
values in class AbstractMap<K,V>
Copyright © 2013. All Rights Reserved.