public abstract class THash
extends java.lang.Object
implements java.lang.Cloneable
| Modifier and Type | Field and Description |
|---|---|
protected int |
_deadkeys
Number of entries marked REMOVED (by either TObjectHash or TPrimitiveHash)
|
protected int |
_free
the current number of free slots in the hash.
|
protected float |
_loadFactor
Determines how full the internal table can become before
rehashing is required.
|
protected int |
_maxSize
The maximum number of elements allowed without allocating more
space.
|
protected int |
_size
the current number of occupied slots in the hash.
|
protected static int |
DEFAULT_INITIAL_CAPACITY
the default initial capacity for the hash table.
|
protected static float |
DEFAULT_LOAD_FACTOR
the load above which rehashing occurs.
|
protected static java.lang.Object[] |
EMPTY_OBJECT_ARRAY |
protected static int |
JUST_CREATED_CAPACITY |
| Constructor and Description |
|---|
THash()
Creates a new
THash instance with the default
capacity and load factor. |
THash(int initialCapacity)
Creates a new
THash instance with a prime capacity
at or near the specified capacity and with the default load
factor. |
THash(int initialCapacity,
float loadFactor)
Creates a new
THash instance with a prime capacity
at or near the minimum needed to hold initialCapacity
elements with load factor loadFactor without triggering
a rehash. |
| Modifier and Type | Method and Description |
|---|---|
protected int |
calculateGrownCapacity() |
protected abstract int |
capacity() |
void |
clear()
Empties the collection.
|
java.lang.Object |
clone() |
void |
compact()
Compresses the hashtable to the minimum prime size (as defined
by PrimeFinder) that will hold all of the elements currently in
the table.
|
void |
ensureCapacity(int desiredCapacity)
Ensure that this hashtable has sufficient capacity to hold
desiredCapacity additional elements without
requiring a rehash.
|
boolean |
isEmpty()
Tells whether this set is currently holding any elements.
|
protected void |
postInsertHook(boolean usedFreeSlot)
After an insert, this hook is called to adjust the size/free
values of the set and to perform rehashing if necessary.
|
protected abstract void |
rehash(int newCapacity)
Rehashes the set.
|
protected void |
removeAt(int index)
Delete the record at index.
|
protected int |
setUp(int initialCapacity)
initializes the hashtable to a prime capacity which is at least
initialCapacity + 1.
|
int |
size()
Returns the number of distinct elements in this collection.
|
void |
startCompactingOnRemove(boolean compact) |
void |
stopCompactingOnRemove() |
void |
trimToSize()
This simply calls
compact. |
protected transient int _size
protected transient int _free
protected transient int _deadkeys
protected static final float DEFAULT_LOAD_FACTOR
protected static final int DEFAULT_INITIAL_CAPACITY
protected static final int JUST_CREATED_CAPACITY
protected static final java.lang.Object[] EMPTY_OBJECT_ARRAY
protected final float _loadFactor
protected int _maxSize
public THash()
THash instance with the default
capacity and load factor.public THash(int initialCapacity)
THash instance with a prime capacity
at or near the specified capacity and with the default load
factor.initialCapacity - an int valuepublic THash(int initialCapacity,
float loadFactor)
THash instance with a prime capacity
at or near the minimum needed to hold initialCapacity
elements with load factor loadFactor without triggering
a rehash.initialCapacity - an int valueloadFactor - a float valuepublic java.lang.Object clone()
clone in class java.lang.Objectpublic boolean isEmpty()
boolean valuepublic int size()
int valueprotected abstract int capacity()
public void ensureCapacity(int desiredCapacity)
desiredCapacity - an int valuepublic void compact()
public final void trimToSize()
compact. It is included for
symmetry with other collection classes. Note that the name of this
method is somewhat misleading (which is why we prefer
compact) as the load factor may require capacity above
and beyond the size of this collection.compact()protected void removeAt(int index)
index - an int valuepublic final void stopCompactingOnRemove()
public final void startCompactingOnRemove(boolean compact)
public void clear()
protected int setUp(int initialCapacity)
initialCapacity - an int valueprotected abstract void rehash(int newCapacity)
newCapacity - an int valueprotected final void postInsertHook(boolean usedFreeSlot)
protected int calculateGrownCapacity()