GNU Trove

gnu.trove
Class TPrimitiveHash

java.lang.Object
  |
  +--gnu.trove.THash
        |
        +--gnu.trove.TPrimitiveHash
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
TDoubleHash, TFloatHash, TIntHash, TLongHash

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  byte[] _states
          flags indicating whether each position in the hash is FREE, FULL, or REMOVED
protected static byte FREE
          flag indicating that a slot in the hashtable is available
protected static byte FULL
          flag indicating that a slot in the hashtable is occupied
protected static byte REMOVED
          flag indicating that the value of a slot in the hashtable was deleted
 
Fields inherited from class gnu.trove.THash
_free, _loadFactor, _maxSize, _size, DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR
 
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  int capacity()
          Returns the capacity of the hash table.
 java.lang.Object clone()
           
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.
 
Methods inherited from class gnu.trove.THash
clear, compact, ensureCapacity, isEmpty, postInsertHook, rehash, size, trimToSize
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_states

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


FREE

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

See Also:
Constant Field Values

FULL

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

See Also:
Constant Field Values

REMOVED

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

See Also:
Constant Field Values
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

clone

public java.lang.Object clone()
Overrides:
clone in class THash

capacity

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

Specified by:
capacity in class THash
Returns:
the physical capacity of the hash table.

removeAt

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

Overrides:
removeAt in class THash
Parameters:
index - an int value

setUp

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

Overrides:
setUp in class THash
Parameters:
initialCapacity - an int value
Returns:
the actual capacity chosen

GNU Trove

GNU Trove is copyright 2001-2003 Eric D. Friedman. All Rights Reserved.