gnu.trove

Class TPrimitiveHash

public abstract class TPrimitiveHash extends THash

The base class for hashtables of primitive values. Since there is no notion of object equality for primitives, it isn't possible to use a `REMOVED' object to track deletions in an open-addressed table. So, we have to resort to using a parallel `bookkeeping' array of bytes, in which flags can be set to indicate that a particular slot in the hash table is FREE, FULL, or REMOVED. Created: Fri Jan 11 18:55:16 2002

Version: $Id: TPrimitiveHash.java,v 1.3 2002/09/20 20:55:58 ericdf Exp $

Author: Eric D. Friedman

Field Summary
protected static byteFREE
flag indicating that a slot in the hashtable is available
protected static byteFULL
flag indicating that a slot in the hashtable is occupied
protected static byteREMOVED
flag indicating that the value of a slot in the hashtable was deleted
protected byte[]_states
flags indicating whether each position in the hash is FREE, FULL, or REMOVED
Constructor Summary
TPrimitiveHash()
Creates a new THash instance with the default capacity and load factor.
TPrimitiveHash(int initialCapacity)
Creates a new TPrimitiveHash instance with a prime capacity at or near the specified capacity and with the default load factor.
TPrimitiveHash(int initialCapacity, float loadFactor)
Creates a new TPrimitiveHash instance with a prime capacity at or near the minimum needed to hold initialCapacity elements with load factor loadFactor without triggering a rehash.
Method Summary
protected intcapacity()
Returns the capacity of the hash table.
Objectclone()
protected voidremoveAt(int index)
Delete the record at index.
protected intsetUp(int initialCapacity)
initializes the hashtable to a prime capacity which is at least initialCapacity + 1.

Field Detail

FREE

protected static final byte FREE
flag indicating that a slot in the hashtable is available

FULL

protected static final byte FULL
flag indicating that a slot in the hashtable is occupied

REMOVED

protected static final byte REMOVED
flag indicating that the value of a slot in the hashtable was deleted

_states

protected transient byte[] _states
flags indicating whether each position in the hash is FREE, FULL, or REMOVED

Constructor Detail

TPrimitiveHash

public TPrimitiveHash()
Creates a new THash instance with the default capacity and load factor.

TPrimitiveHash

public TPrimitiveHash(int initialCapacity)
Creates a new TPrimitiveHash instance with a prime capacity at or near the specified capacity and with the default load factor.

Parameters: initialCapacity an int value

TPrimitiveHash

public TPrimitiveHash(int initialCapacity, float loadFactor)
Creates a new TPrimitiveHash instance with a prime capacity at or near the minimum needed to hold initialCapacity elements with load factor loadFactor without triggering a rehash.

Parameters: initialCapacity an int value loadFactor a float value

Method Detail

capacity

protected int capacity()
Returns the capacity of the hash table. This is the true physical capacity, without adjusting for the load factor.

Returns: the physical capacity of the hash table.

clone

public Object clone()

removeAt

protected void removeAt(int index)
Delete the record at index.

Parameters: index an int value

setUp

protected int setUp(int initialCapacity)
initializes the hashtable to a prime capacity which is at least initialCapacity + 1.

Parameters: initialCapacity an int value

Returns: the actual capacity chosen