public class Maps
extends java.lang.Object
Map
interface which address various usage scenarios.
Most of the concrete map classes provided here extend, directly or
indirectly, the abstract class Maps.AbstractHashMap
, which provides a
more extensible replacement for HashMap
. These concrete
classes are the following:
Maps.StrongHashMap
A standard hash map: a direct but more extensible
replacement for HashMap
.
Maps.SoftHashMap
A hash map with softly-referenced values.
Maps.WeakHashMap
A hash map with weakly-referenced values.
Maps.StrongLinkedHashMap
A standard linked hash map: a direct but more
extensible replacement for LinkedHashMap
.
Maps.SoftLinkedHashMap
A linked hash map with softly-referenced values.
Maps.WeakLinkedHashMap
A linked hash map with weakly-referenced values.
Maps.CacheMap
A linked hash map specialized for caching that delegates
its caching policy to a Maps.CacheStrategy
supplied to the constructor.
Maps.ManagedCacheMap
A cache map that also an MBean and can be
remotely monitored by a JMX client.
For Maps.CacheMap
, the following concrete Maps.CacheStrategy
implementations are provided:
Maps.UnboundedCacheStrategy
A strategy for an unbounded cache
(effectively, a plain linked hash map).
Maps.BoundedLruCacheStrategy
A strategy for a bounded LRU cache.
Maps.TimedLruCacheStrategy
A strategy for a timed, bounded LRU cache.
Modifier and Type | Class and Description |
---|---|
static class |
Maps.AbstractHashMap<K,V,E extends Maps.BaseEntry<K,V>>
An abstract, but nearly complete, implementation of the
Map
interface that is functionally equivalent to HashMap
but that allows subclasses to do any or all of the following:
control the concrete class of Map.Entry instances used so
long as they extend Maps.BaseEntry (see Maps.AbstractHashMap.createEntry(int, K, V, E) );
override the calculation of hashCode and equals for all keys (see
Maps.AbstractHashMap.keyHashCode(java.lang.Object) and Maps.AbstractHashMap.keyEquals(java.lang.Object, java.lang.Object) );
override the calculation of hashCode and equals for all values (see
Maps.AbstractHashMap.valueHashCode(java.lang.Object) and Maps.AbstractHashMap.valueEquals(java.lang.Object, java.lang.Object) );
track when the map is constructed, initialized, and changed (see
Maps.AbstractHashMap.mapConstructed() , Maps.AbstractHashMap.mapInitialized() , and Maps.AbstractHashMap.mapChanged() ). |
static class |
Maps.AbstractLinkedHashMap<K,V,E extends Maps.LinkedEntry<K,V>>
An abstract, but nearly complete, implementation of the
Map
interface that is functionally equivalent to LinkedHashMap
but is based on Maps.AbstractHashMap and allows subclasses the same
customization options. |
static interface |
Maps.BaseEntry<K,V>
The extended
Map.Entry interface required by
Maps.AbstractHashMap for its entries. |
static class |
Maps.BoundedLruCacheStrategy<K,V>
A bounded size LRU (least recently used) cache strategy.
|
static class |
Maps.CacheMap<K,V> |
static class |
Maps.CacheStrategy<K,V>
An abstract caching strategy for a
cache map . |
static class |
Maps.EvictedLinkedEntry<K,V> |
static interface |
Maps.LinkedEntry<K,V>
The
Map.Entry (and Maps.BaseEntry ) extended interface
required by Maps.AbstractLinkedHashMap for its entries. |
static class |
Maps.ManagedCacheMap<K,V>
A cache map which is an MBean and can be monitored by a JMX client (e.g.,
JConsole).
|
static interface |
Maps.ManagedCacheMapMBean |
static class |
Maps.SoftEntry<K,V>
An
Maps.BaseEntry implementation which holds its value with a
SoftReference . |
static class |
Maps.SoftHashMap<K,V>
An implementation of
Maps.AbstractHashMap , based on Maps.SoftEntry ,
which holds its values with SoftReference s. |
static class |
Maps.SoftLinkedEntry<K,V>
An
Maps.LinkedEntry implementation which holds its value with a
SoftReference . |
static class |
Maps.SoftLinkedHashMap<K,V>
An implementation of
Maps.AbstractLinkedHashMap , based on Maps.SoftLinkedEntry , which holds its values with SoftReference s. |
static class |
Maps.StrongEntry<K,V>
The default
Maps.BaseEntry implementation. |
static class |
Maps.StrongHashMap<K,V>
The default implementation of
Maps.AbstractHashMap , based on Maps.StrongEntry . |
static class |
Maps.StrongLinkedEntry<K,V>
The default
Maps.LinkedEntry implementation. |
static class |
Maps.StrongLinkedHashMap<K,V>
The default implementation of
Maps.AbstractLinkedHashMap , based on
Maps.StrongLinkedEntry . |
static interface |
Maps.TimedEntry<K,V> |
static class |
Maps.TimedEvictedLinkedEntry<K,V> |
static class |
Maps.TimedLruCacheStrategy<K,V>
A timed, bounded size LRU cache strategy.
|
static class |
Maps.TimedSoftLinkedEntry<K,V> |
static class |
Maps.TimedStrongLinkedEntry<K,V> |
static class |
Maps.TimedWeakLinkedEntry<K,V> |
static class |
Maps.UnboundedCacheStrategy<K,V>
An unbounded cache strategy.
|
static class |
Maps.WeakEntry<K,V>
An
Maps.BaseEntry implementation which holds its value with a
WeakReference . |
static class |
Maps.WeakHashMap<K,V>
An implementation of
Maps.AbstractHashMap , based on Maps.WeakEntry ,
which holds its values with WeakReference s. |
static class |
Maps.WeakLinkedEntry<K,V>
An
Maps.LinkedEntry implementation which holds its value with a
WeakReference . |
static class |
Maps.WeakLinkedHashMap<K,V>
An implementation of
Maps.AbstractLinkedHashMap , based on Maps.WeakLinkedEntry , which holds its values with WeakReference s. |
Constructor and Description |
---|
Maps() |