| java.lang.Object com.jofti.util.AbstractMap
All known Subclasses: com.jofti.util.ValueTreeMap, com.jofti.util.OpenHashMap,
AbstractMap | abstract public class AbstractMap (Code) | | Abstract base class for hash maps holding objects or primitive data types such as int , float , etc. as keys and/or values.
First see the package summary and javadoc tree view to get the broad picture.
Note that implementations are not synchronized.
author: steve@jofti.com author: wolfgang.hoschek@cern.ch version: 1.1, 03/01/06 version: 1.0, 09/24/99 See Also: java.util.HashMap |
Field Summary | |
final protected static int | defaultCapacity | final protected static double | defaultMaxLoadFactor | final protected static double | defaultMinLoadFactor | protected int | distinct The number of distinct associations in the map; its "size()". | protected int | highWaterMark | protected int | lowWaterMark The table capacity c=table.length always satisfies the invariant
c * minLoadFactor <= s <= c * maxLoadFactor, where s=size() is the number of associations currently contained. | protected double | maxLoadFactor The maximum load factor for the hashtable. | protected double | minLoadFactor The minimum load factor for the hashtable. |
Constructor Summary | |
protected | AbstractMap() Makes this class non instantiable, but still let's others inherit from it. |
Method Summary | |
protected int | chooseGrowCapacity(int size, double minLoad, double maxLoad) Chooses a new prime table capacity optimized for growing that (approximately) satisfies the invariant
c * minLoadFactor <= size <= c * maxLoadFactor
and has at least one FREE slot for the given size. | protected int | chooseHighWaterMark(int capacity, double maxLoad) Returns new high water mark threshold based on current capacity and maxLoadFactor. | protected int | chooseLowWaterMark(int capacity, double minLoad) Returns new low water mark threshold based on current capacity and minLoadFactor. | protected int | chooseMeanCapacity(int size, double minLoad, double maxLoad) Chooses a new prime table capacity neither favoring shrinking nor growing,
that (approximately) satisfies the invariant
c * minLoadFactor <= size <= c * maxLoadFactor
and has at least one FREE slot for the given size. | protected int | chooseShrinkCapacity(int size, double minLoad, double maxLoad) Chooses a new prime table capacity optimized for shrinking that (approximately) satisfies the invariant
c * minLoadFactor <= size <= c * maxLoadFactor
and has at least one FREE slot for the given size. | abstract public void | clear() Removes all (key,value) associations from the receiver. | abstract public void | ensureCapacity(int minCapacity) Ensures that the receiver can hold at least the specified number of elements without needing to allocate new internal memory. | public boolean | isEmpty() Returns true if the receiver contains no (key,value) associations. | protected int | nextPrime(int desiredCapacity) Returns a prime number which is >= desiredCapacity and very close to desiredCapacity (within 11% if desiredCapacity >= 1000 ).
Parameters: desiredCapacity - the capacity desired by the user. | protected void | setUp(int initialCapacity, double minLoadFactor, double maxLoadFactor) Initializes the receiver. | public int | size() Returns the number of (key,value) associations currently contained. | abstract public void | trimToSize() Trims the capacity of the receiver to be the receiver's current
size. |
defaultCapacity | final protected static int defaultCapacity(Code) | | |
defaultMaxLoadFactor | final protected static double defaultMaxLoadFactor(Code) | | |
defaultMinLoadFactor | final protected static double defaultMinLoadFactor(Code) | | |
distinct | protected int distinct(Code) | | The number of distinct associations in the map; its "size()".
|
highWaterMark | protected int highWaterMark(Code) | | |
lowWaterMark | protected int lowWaterMark(Code) | | The table capacity c=table.length always satisfies the invariant
c * minLoadFactor <= s <= c * maxLoadFactor, where s=size() is the number of associations currently contained.
The term "c * minLoadFactor" is called the "lowWaterMark", "c * maxLoadFactor" is called the "highWaterMark".
In other words, the table capacity (and proportionally the memory used by this class) oscillates within these constraints.
The terms are precomputed and cached to avoid recalculating them each time put(..) or removeKey(...) is called.
|
maxLoadFactor | protected double maxLoadFactor(Code) | | The maximum load factor for the hashtable.
|
minLoadFactor | protected double minLoadFactor(Code) | | The minimum load factor for the hashtable.
|
AbstractMap | protected AbstractMap()(Code) | | Makes this class non instantiable, but still let's others inherit from it.
|
chooseGrowCapacity | protected int chooseGrowCapacity(int size, double minLoad, double maxLoad)(Code) | | Chooses a new prime table capacity optimized for growing that (approximately) satisfies the invariant
c * minLoadFactor <= size <= c * maxLoadFactor
and has at least one FREE slot for the given size.
|
chooseHighWaterMark | protected int chooseHighWaterMark(int capacity, double maxLoad)(Code) | | Returns new high water mark threshold based on current capacity and maxLoadFactor.
int the new threshold. |
chooseLowWaterMark | protected int chooseLowWaterMark(int capacity, double minLoad)(Code) | | Returns new low water mark threshold based on current capacity and minLoadFactor.
int the new threshold. |
chooseMeanCapacity | protected int chooseMeanCapacity(int size, double minLoad, double maxLoad)(Code) | | Chooses a new prime table capacity neither favoring shrinking nor growing,
that (approximately) satisfies the invariant
c * minLoadFactor <= size <= c * maxLoadFactor
and has at least one FREE slot for the given size.
|
chooseShrinkCapacity | protected int chooseShrinkCapacity(int size, double minLoad, double maxLoad)(Code) | | Chooses a new prime table capacity optimized for shrinking that (approximately) satisfies the invariant
c * minLoadFactor <= size <= c * maxLoadFactor
and has at least one FREE slot for the given size.
|
clear | abstract public void clear()(Code) | | Removes all (key,value) associations from the receiver.
|
ensureCapacity | abstract public void ensureCapacity(int minCapacity)(Code) | | Ensures that the receiver can hold at least the specified number of elements without needing to allocate new internal memory.
If necessary, allocates new internal memory and increases the capacity of the receiver.
This method never need be called; it is for performance tuning only.
Calling this method before put()ing a large number of associations boosts performance,
because the receiver will grow only once instead of potentially many times.
This default implementation does nothing. Override this method if necessary.
Parameters: minCapacity - the desired minimum capacity. |
isEmpty | public boolean isEmpty()(Code) | | Returns true if the receiver contains no (key,value) associations.
true if the receiver contains no (key,value) associations. |
nextPrime | protected int nextPrime(int desiredCapacity)(Code) | | Returns a prime number which is >= desiredCapacity and very close to desiredCapacity (within 11% if desiredCapacity >= 1000 ).
Parameters: desiredCapacity - the capacity desired by the user. the capacity which should be used for a hashtable. |
setUp | protected void setUp(int initialCapacity, double minLoadFactor, double maxLoadFactor)(Code) | | Initializes the receiver.
You will almost certainly need to override this method in subclasses to initialize the hash table.
Parameters: initialCapacity - the initial capacity of the receiver. Parameters: minLoadFactor - the minLoadFactor of the receiver. Parameters: maxLoadFactor - the maxLoadFactor of the receiver. throws: IllegalArgumentException - if initialCapacity < 0 || (minLoadFactor < 0.0 || minLoadFactor >= 1.0) || (maxLoadFactor <= 0.0 || maxLoadFactor >= 1.0) || (minLoadFactor >= maxLoadFactor). |
size | public int size()(Code) | | Returns the number of (key,value) associations currently contained.
the number of (key,value) associations currently contained. |
trimToSize | abstract public void trimToSize()(Code) | | Trims the capacity of the receiver to be the receiver's current
size. Releases any superfluous internal memory. An application can use this operation to minimize the
storage of the receiver.
This default implementation does nothing. Override this method if necessary.
|
|
|