org.jboss.cache.util
Class FastCopyHashMap<K,V>
java.lang.Object
java.util.AbstractMap<K,V>
org.jboss.cache.util.FastCopyHashMap<K,V>
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, java.util.Map<K,V>
public class FastCopyHashMap<K,V>
- extends java.util.AbstractMap<K,V>
- implements java.util.Map<K,V>, java.lang.Cloneable, java.io.Serializable
A HashMap that is optimized for fast shallow copies. If the copy-ctor is
passed another FastCopyHashMap, or clone is called on this map, the shallow
copy can be performed using little more than a single array copy. In order to
accomplish this, immutable objects must be used internally, so update
operations result in slightly more object churn than HashMap.
Note: It is very important to use a smaller load factor than you normally
would for HashMap, since the implementation is open-addressed with linear
probing. With a 50% load-factor a get is expected to return in only 2 probes.
However, a 90% load-factor is expected to return in around 50 probes.
- Author:
- Jason T. Greene
- See Also:
- Serialized Form
| Nested classes/interfaces inherited from class java.util.AbstractMap |
java.util.AbstractMap.SimpleImmutableEntry<K,V> |
| Methods inherited from class java.util.AbstractMap |
equals, hashCode, toString |
| Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface java.util.Map |
equals, hashCode |
FastCopyHashMap
public FastCopyHashMap(int initialCapacity,
float loadFactor)
FastCopyHashMap
public FastCopyHashMap(java.util.Map<? extends K,? extends V> map)
FastCopyHashMap
public FastCopyHashMap(int initialCapacity)
FastCopyHashMap
public FastCopyHashMap()
size
public int size()
- Specified by:
size in interface java.util.Map<K,V>- Overrides:
size in class java.util.AbstractMap<K,V>
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty in interface java.util.Map<K,V>- Overrides:
isEmpty in class java.util.AbstractMap<K,V>
get
public V get(java.lang.Object key)
- Specified by:
get in interface java.util.Map<K,V>- Overrides:
get in class java.util.AbstractMap<K,V>
containsKey
public boolean containsKey(java.lang.Object key)
- Specified by:
containsKey in interface java.util.Map<K,V>- Overrides:
containsKey in class java.util.AbstractMap<K,V>
containsValue
public boolean containsValue(java.lang.Object value)
- Specified by:
containsValue in interface java.util.Map<K,V>- Overrides:
containsValue in class java.util.AbstractMap<K,V>
put
public V put(K key,
V value)
- Specified by:
put in interface java.util.Map<K,V>- Overrides:
put in class java.util.AbstractMap<K,V>
putAll
public void putAll(java.util.Map<? extends K,? extends V> map)
- Specified by:
putAll in interface java.util.Map<K,V>- Overrides:
putAll in class java.util.AbstractMap<K,V>
remove
public V remove(java.lang.Object key)
- Specified by:
remove in interface java.util.Map<K,V>- Overrides:
remove in class java.util.AbstractMap<K,V>
clear
public void clear()
- Specified by:
clear in interface java.util.Map<K,V>- Overrides:
clear in class java.util.AbstractMap<K,V>
clone
public java.lang.Object clone()
- Overrides:
clone in class java.util.AbstractMap<K,V>
printDebugStats
public void printDebugStats()
entrySet
public java.util.Set<java.util.Map.Entry<K,V>> entrySet()
- Specified by:
entrySet in interface java.util.Map<K,V>- Specified by:
entrySet in class java.util.AbstractMap<K,V>
keySet
public java.util.Set<K> keySet()
- Specified by:
keySet in interface java.util.Map<K,V>- Overrides:
keySet in class java.util.AbstractMap<K,V>
values
public java.util.Collection<V> values()
- Specified by:
values in interface java.util.Map<K,V>- Overrides:
values in class java.util.AbstractMap<K,V>
Copyright © 2009 JBoss, a division of Red Hat. All Rights Reserved.