|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.util.AbstractMap<K,V>
com.thimbleware.jmemcached.storage.hash.ConcurrentLinkedHashMap<K,V>
public final class ConcurrentLinkedHashMap<K,V extends SizedItem>
A ConcurrentMap with a doubly-linked list running through its entries.
ConcurrentHashMap in terms of
iterators, acceptable keys, and concurrency characteristics, but perform slightly
worse due to the added expense of maintaining the linked list. It differs from
LinkedHashMap in that it does not provide predictable iteration
order.
This map is intended to be used for caches and provides the following eviction policies:
http://code.google.com/p/concurrentlinkedhashmap/,
Serialized Form| Nested Class Summary | |
|---|---|
static interface |
ConcurrentLinkedHashMap.EvictionListener<K,V>
A listener registered for notification when an entry is evicted. |
static class |
ConcurrentLinkedHashMap.EvictionPolicy
The replacement policy to apply to determine which entry to discard when the capacity has been reached. |
protected static class |
ConcurrentLinkedHashMap.Node<K,V>
A node on the double-linked list. |
| Nested classes/interfaces inherited from class java.util.AbstractMap |
|---|
java.util.AbstractMap.SimpleImmutableEntry<K,V> |
| Nested classes/interfaces inherited from interface java.util.Map |
|---|
java.util.Map.Entry<K,V> |
| Method Summary | ||
|---|---|---|
int |
capacity()
Retrieves the maximum capacity of the map. |
|
void |
clear()
|
|
void |
close()
Close the storage unit, deallocating any resources it might be currently holding. |
|
boolean |
containsKey(java.lang.Object key)
|
|
boolean |
containsValue(java.lang.Object value)
|
|
static
|
create(ConcurrentLinkedHashMap.EvictionPolicy policy,
int maximumCapacity,
long maximumMemoryCapacity)
Creates a map with the specified eviction policy, maximum capacity, and at the default concurrency level. |
|
static
|
create(ConcurrentLinkedHashMap.EvictionPolicy policy,
int maximumCapacity,
long maximumMemoryCapacity,
ConcurrentLinkedHashMap.EvictionListener<K,V> listener)
Creates a map with the specified eviction policy, maximum capacity, eviction listener, and at the default concurrency level. |
|
static
|
create(ConcurrentLinkedHashMap.EvictionPolicy policy,
int maximumCapacity,
long maximumMemoryCapacity,
int concurrencyLevel)
Creates a map with the specified eviction policy, maximum capacity, and concurrency level. |
|
static
|
create(ConcurrentLinkedHashMap.EvictionPolicy policy,
int maximumCapacity,
long maximumMemoryCapacity,
int concurrencyLevel,
ConcurrentLinkedHashMap.EvictionListener<K,V> listener)
Creates a map with the specified eviction policy, maximum capacity, eviction listener, and concurrency level. |
|
java.util.Set<java.util.Map.Entry<K,V>> |
entrySet()
|
|
V |
get(java.lang.Object key)
|
|
long |
getMemoryCapacity()
|
|
long |
getMemoryUsed()
|
|
java.util.Set<K> |
keySet()
|
|
V |
put(K key,
V value)
|
|
V |
putIfAbsent(K key,
V value)
|
|
V |
remove(java.lang.Object key)
|
|
boolean |
remove(java.lang.Object key,
java.lang.Object value)
|
|
V |
replace(K key,
V value)
|
|
boolean |
replace(K key,
V oldValue,
V newValue)
|
|
void |
setCapacity(int capacity)
Sets the maximum capacity of the map and eagerly evicts entries until it shrinks to the appropriate size. |
|
void |
setMemoryCapacity(int capacity)
Sets the maximum capacity of the map and eagerly evicts entries until it shrinks to the appropriate size. |
|
int |
size()
|
|
java.util.Collection<V> |
values()
|
|
| Methods inherited from class java.util.AbstractMap |
|---|
clone, equals, hashCode, isEmpty, putAll, toString |
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface java.util.Map |
|---|
equals, hashCode, isEmpty, putAll |
| Method Detail |
|---|
public static <K,V extends SizedItem> ConcurrentLinkedHashMap<K,V> create(ConcurrentLinkedHashMap.EvictionPolicy policy,
int maximumCapacity,
long maximumMemoryCapacity)
policy - The eviction policy to apply when the size exceeds the maximum capacity.maximumCapacity - The maximum capacity to coerces to. The size may exceed it temporarily.
public static <K,V extends SizedItem> ConcurrentLinkedHashMap<K,V> create(ConcurrentLinkedHashMap.EvictionPolicy policy,
int maximumCapacity,
long maximumMemoryCapacity,
ConcurrentLinkedHashMap.EvictionListener<K,V> listener)
policy - The eviction policy to apply when the size exceeds the maximum capacity.maximumCapacity - The maximum capacity to coerces to. The size may exceed it temporarily.listener - The listener registered for notification when an entry is evicted.
public static <K,V extends SizedItem> ConcurrentLinkedHashMap<K,V> create(ConcurrentLinkedHashMap.EvictionPolicy policy,
int maximumCapacity,
long maximumMemoryCapacity,
int concurrencyLevel)
policy - The eviction policy to apply when the size exceeds the maximum capacity.maximumCapacity - The maximum capacity to coerces to. The size may exceed it temporarily.concurrencyLevel - The estimated number of concurrently updating threads. The implementation
performs internal sizing to try to accommodate this many threads.
public static <K,V extends SizedItem> ConcurrentLinkedHashMap<K,V> create(ConcurrentLinkedHashMap.EvictionPolicy policy,
int maximumCapacity,
long maximumMemoryCapacity,
int concurrencyLevel,
ConcurrentLinkedHashMap.EvictionListener<K,V> listener)
policy - The eviction policy to apply when the size exceeds the maximum capacity.maximumCapacity - The maximum capacity to coerces to. The size may exceed it temporarily.concurrencyLevel - The estimated number of concurrently updating threads. The implementation
performs internal sizing to try to accommodate this many threads.listener - The listener registered for notification when an entry is evicted.public long getMemoryCapacity()
getMemoryCapacity in interface CacheStorage<K,V extends SizedItem>public long getMemoryUsed()
getMemoryUsed in interface CacheStorage<K,V extends SizedItem>public void setCapacity(int capacity)
capacity - The maximum capacity of the map.public void setMemoryCapacity(int capacity)
capacity - The maximum capacity of the map.public int capacity()
capacity in interface CacheStorage<K,V extends SizedItem>public void close()
CacheStorage
close in interface CacheStorage<K,V extends SizedItem>public int size()
size in interface java.util.Map<K,V extends SizedItem>size in class java.util.AbstractMap<K,V extends SizedItem>public void clear()
clear in interface java.util.Map<K,V extends SizedItem>clear in class java.util.AbstractMap<K,V extends SizedItem>public boolean containsKey(java.lang.Object key)
containsKey in interface java.util.Map<K,V extends SizedItem>containsKey in class java.util.AbstractMap<K,V extends SizedItem>public boolean containsValue(java.lang.Object value)
containsValue in interface java.util.Map<K,V extends SizedItem>containsValue in class java.util.AbstractMap<K,V extends SizedItem>public V get(java.lang.Object key)
get in interface java.util.Map<K,V extends SizedItem>get in class java.util.AbstractMap<K,V extends SizedItem>
public V put(K key,
V value)
put in interface java.util.Map<K,V extends SizedItem>put in class java.util.AbstractMap<K,V extends SizedItem>
public V putIfAbsent(K key,
V value)
putIfAbsent in interface java.util.concurrent.ConcurrentMap<K,V extends SizedItem>public V remove(java.lang.Object key)
remove in interface java.util.Map<K,V extends SizedItem>remove in class java.util.AbstractMap<K,V extends SizedItem>
public boolean remove(java.lang.Object key,
java.lang.Object value)
remove in interface java.util.concurrent.ConcurrentMap<K,V extends SizedItem>
public V replace(K key,
V value)
replace in interface java.util.concurrent.ConcurrentMap<K,V extends SizedItem>
public boolean replace(K key,
V oldValue,
V newValue)
replace in interface java.util.concurrent.ConcurrentMap<K,V extends SizedItem>public java.util.Set<K> keySet()
keySet in interface java.util.Map<K,V extends SizedItem>keySet in class java.util.AbstractMap<K,V extends SizedItem>public java.util.Collection<V> values()
values in interface java.util.Map<K,V extends SizedItem>values in class java.util.AbstractMap<K,V extends SizedItem>public java.util.Set<java.util.Map.Entry<K,V>> entrySet()
entrySet in interface java.util.Map<K,V extends SizedItem>entrySet in class java.util.AbstractMap<K,V extends SizedItem>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||