net.tomp2p.utils
Class CacheMap<K,V>
java.lang.Object
java.util.AbstractMap<K,V>
java.util.HashMap<K,V>
java.util.LinkedHashMap<K,V>
net.tomp2p.utils.CacheMap<K,V>
- Type Parameters:
K
- The keyV
- The value
- All Implemented Interfaces:
- Serializable, Cloneable, Map<K,V>
public class CacheMap<K,V>
- extends LinkedHashMap<K,V>
The CacheMap is a LRU cache with a given capacity. The elements that do not fit into the cache will be removed. The
flag updateEntryOnInsert will determine if put(Object, Object)
or putIfAbsent(Object, Object)
will
be used. This is useful for entries that have timing information and that should not be updated if the same key is
going to be used. This class extends LinkedHashMap
, which means that this class is not thread safe.
- Author:
- Thomas Bocek
- See Also:
- Serialized Form
Constructor Summary |
CacheMap(int maxEntries,
boolean updateEntryOnInsert)
Creates a new CacheMap with a fixed capacity |
CacheMap
public CacheMap(int maxEntries,
boolean updateEntryOnInsert)
- Creates a new CacheMap with a fixed capacity
- Parameters:
maxEntries
- The number of entries that can be stored in this mapupdateEntryOnInsert
- Set to true to update (overwrite) values. Set false to not overwrite the values if
there is a value present.
put
public V put(K key,
V value)
- Specified by:
put
in interface Map<K,V>
- Overrides:
put
in class HashMap<K,V>
putIfAbsent
public V putIfAbsent(K key,
V value)
- If the key is not associated with a value, associate it with the value. This is the same as:
if ( !map.containsKey( key ) )
{
return map.put( key, value );
}
else
{
return map.get( key );
}
- Parameters:
key
- key with which the value is to be associated.value
- value to be associated with the key.
- Returns:
- previous value associated with key, or null if there was no mapping for this key.
removeEldestEntry
protected boolean removeEldestEntry(Map.Entry<K,V> eldest)
- Overrides:
removeEldestEntry
in class LinkedHashMap<K,V>
Copyright © 2013. All Rights Reserved.