Map
implementation that allows mappings to be removed by the garbage collector and matches keys and values based on ==
not equals()
.
When you construct a ReferenceIdentityMap
, you can specify what kind of references are used to store the map's keys and values. If non-hard references are used, then the garbage collector can remove mappings if a key or value becomes unreachable, or if the JVM's memory is running low. For information on how the different reference types behave, see {@link Reference}.
Different types of references can be specified for keys and values. The default constructor uses hard keys and soft values, providing a memory-sensitive cache.
This map is similar to {@link org.apache.commons.collections.map.ReferenceMap ReferenceMap}. It differs in that keys and values in this class are compared using ==
.
This map will violate the detail of various Map and map view contracts. As a general rule, don't compare this map to other maps.
This {@link Map} implementation does not allow null elements.Attempting to add a null key or value to the map will raise a NullPointerException
.
This implementation is not synchronized. You can use {@link java.util.Collections#synchronizedMap} to provide synchronized access to a ReferenceIdentityMap
. Remember that synchronization will not stop the garbage collecter removing entries.
All the available iterators can be reset back to the start by casting to ResettableIterator
and calling reset()
.
@see java.lang.ref.Reference
@since Commons Collections 3.0 (previously in main package v2.1)
@version $Revision: 1.1 $ $Date: 2004/04/27 21:37:32 $
@author Stephen Colebourne
|
|
|
|
|
|