Class LRUHashMapCache<Key,Value>

  extended by cascading.util.cache.LRUHashMapCache<Key,Value>
All Implemented Interfaces:
CascadingCache<Key,Value>, Map<Key,Value>

public class LRUHashMapCache<Key,Value>
extends Object
implements CascadingCache<Key,Value>

Implementation of the CascadingCache interface backed by a LinkedHashMap configured to evict the least recently used key.

That is, if duplicate keys are clustered near each other in the incoming tuple stream, this cache will provide the most benefit as keys that begin to occur less frequently or not at all will be evicted as the key capacity is reached.

If the keys are very random, if not uniformly distributed in the stream, consider using the DirectMappedCache to reduce the amount of hash and equality comparisons.

This implementation is used by default by Unique and AggregateBy and their subclasses.

See Also:
Unique, AggregateBy, LRUHashMapCacheFactory, DirectMappedCacheFactory, DirectMappedCache

Nested Class Summary
Nested classes/interfaces inherited from interface java.util.Map
Constructor Summary
Method Summary
 void clear()
 boolean containsKey(Object key)
 boolean containsValue(Object value)
 Set<Map.Entry<Key,Value>> entrySet()
 Value get(Object key)
 int getCapacity()
          Returns the capacity of this cache.
 void initialize()
          Method to initialize the Cache.
 boolean isEmpty()
 Set<Key> keySet()
 Value put(Key key, Value value)
 void putAll(Map<? extends Key,? extends Value> m)
 Value remove(Object key)
 void setCacheEvictionCallback(CacheEvictionCallback cacheEvictionCallback)
          Sets the CacheEvictionCallback of this Cache.
 void setCapacity(int capacity)
          Sets the capacity of the Cache.
 int size()
 Collection<Value> values()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Map
equals, hashCode

Constructor Detail


public LRUHashMapCache()
Method Detail


public int getCapacity()
Description copied from interface: CascadingCache
Returns the capacity of this cache.

Specified by:
getCapacity in interface CascadingCache<Key,Value>


public void setCacheEvictionCallback(CacheEvictionCallback cacheEvictionCallback)
Description copied from interface: CascadingCache
Sets the CacheEvictionCallback of this Cache.

Specified by:
setCacheEvictionCallback in interface CascadingCache<Key,Value>


public void setCapacity(int capacity)
Description copied from interface: CascadingCache
Sets the capacity of the Cache.

Specified by:
setCapacity in interface CascadingCache<Key,Value>


public void initialize()
Description copied from interface: CascadingCache
Method to initialize the Cache. Any setup should be done in here.

Specified by:
initialize in interface CascadingCache<Key,Value>


public int size()
Specified by:
size in interface Map<Key,Value>


public boolean isEmpty()
Specified by:
isEmpty in interface Map<Key,Value>


public boolean containsKey(Object key)
Specified by:
containsKey in interface Map<Key,Value>


public boolean containsValue(Object value)
Specified by:
containsValue in interface Map<Key,Value>


public Value get(Object key)
Specified by:
get in interface Map<Key,Value>


public Value put(Key key,
                 Value value)
Specified by:
put in interface Map<Key,Value>


public Value remove(Object key)
Specified by:
remove in interface Map<Key,Value>


public void putAll(Map<? extends Key,? extends Value> m)
Specified by:
putAll in interface Map<Key,Value>


public void clear()
Specified by:
clear in interface Map<Key,Value>


public Set<Key> keySet()
Specified by:
keySet in interface Map<Key,Value>


public Collection<Value> values()
Specified by:
values in interface Map<Key,Value>


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

Copyright © 2007-2015 Concurrent, Inc. All Rights Reserved.