Class TPrimitiveHash

java.lang.Object
gnu.trove.impl.hash.THash
gnu.trove.impl.hash.TPrimitiveHash
All Implemented Interfaces:
Externalizable, Serializable
Direct Known Subclasses:
TByteByteHash, TByteCharHash, TByteDoubleHash, TByteFloatHash, TByteHash, TByteIntHash, TByteLongHash, TByteShortHash, TCharByteHash, TCharCharHash, TCharDoubleHash, TCharFloatHash, TCharHash, TCharIntHash, TCharLongHash, TCharShortHash, TDoubleByteHash, TDoubleCharHash, TDoubleDoubleHash, TDoubleFloatHash, TDoubleHash, TDoubleIntHash, TDoubleLongHash, TDoubleShortHash, TFloatByteHash, TFloatCharHash, TFloatDoubleHash, TFloatFloatHash, TFloatHash, TFloatIntHash, TFloatLongHash, TFloatShortHash, TIntByteHash, TIntCharHash, TIntDoubleHash, TIntFloatHash, TIntHash, TIntIntHash, TIntLongHash, TIntShortHash, TLongByteHash, TLongCharHash, TLongDoubleHash, TLongFloatHash, TLongHash, TLongIntHash, TLongLongHash, TLongShortHash, TShortByteHash, TShortCharHash, TShortDoubleHash, TShortFloatHash, TShortHash, TShortIntHash, TShortLongHash, TShortShortHash

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.
See Also:
  • Field Details

    • _states

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

      public static final byte FREE
      flag indicating that a slot in the hashtable is available
      See Also:
    • FULL

      public static final byte FULL
      flag indicating that a slot in the hashtable is occupied
      See Also:
    • REMOVED

      public static final byte REMOVED
      flag indicating that the value of a slot in the hashtable was deleted
      See Also:
  • Constructor Details

    • 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 Details

    • capacity

      public 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