gnu.trove.impl.hash
Class TObjectHash<T>

java.lang.Object
  extended by gnu.trove.impl.hash.THash
      extended by gnu.trove.impl.hash.TObjectHash<T>
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable
Direct Known Subclasses:
THashMap, THashSet

public abstract class TObjectHash<T>
extends THash

An open addressed hashing implementation for Object types.

Created: Sun Nov 4 08:56:06 2001

Version:
$Id: TObjectHash.java,v 1.1.2.6 2009/11/07 03:36:44 robeden Exp $
Author:
Eric D. Friedman, Rob Eden, Jeff Randall
See Also:
Serialized Form

Field Summary
 java.lang.Object[] _set
          the set of Objects
static java.lang.Object FREE
           
static java.lang.Object REMOVED
           
 
Fields inherited from class gnu.trove.impl.hash.THash
_autoCompactionFactor, _autoCompactRemovesRemaining, _autoCompactTemporaryDisable, _free, _loadFactor, _maxSize, _size, DEFAULT_CAPACITY, DEFAULT_LOAD_FACTOR
 
Constructor Summary
TObjectHash()
          Creates a new TObjectHash instance with the default capacity and load factor.
TObjectHash(int initialCapacity)
          Creates a new TObjectHash instance whose capacity is the next highest prime above initialCapacity + 1 unless that value is already prime.
TObjectHash(int initialCapacity, float loadFactor)
          Creates a new TObjectHash instance with a prime value at or near the specified capacity and load factor.
 
Method Summary
 int capacity()
           
 boolean contains(java.lang.Object obj)
          Searches the set for obj
 boolean forEach(TObjectProcedure<T> procedure)
          Executes procedure for each element in the set.
protected  int index(java.lang.Object obj)
          Locates the index of obj.
protected  int insertionIndex(T obj)
          Locates the index at which obj can be inserted.
 void readExternal(java.io.ObjectInput in)
           
protected  void removeAt(int index)
          Delete the record at index.
 int setUp(int initialCapacity)
          initializes the Object set of this hash table.
protected  void throwObjectContractViolation(java.lang.Object o1, java.lang.Object o2)
          Convenience methods for subclasses to use in throwing exceptions about badly behaved user objects employed as keys.
 void writeExternal(java.io.ObjectOutput out)
           
 
Methods inherited from class gnu.trove.impl.hash.THash
calculateGrownCapacity, clear, compact, computeMaxSize, computeNextAutoCompactionAmount, ensureCapacity, getAutoCompactionFactor, isEmpty, postInsertHook, reenableAutoCompaction, rehash, setAutoCompactionFactor, size, tempDisableAutoCompaction, trimToSize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_set

public transient java.lang.Object[] _set
the set of Objects


REMOVED

public static final java.lang.Object REMOVED

FREE

public static final java.lang.Object FREE
Constructor Detail

TObjectHash

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


TObjectHash

public TObjectHash(int initialCapacity)
Creates a new TObjectHash instance whose capacity is the next highest prime above initialCapacity + 1 unless that value is already prime.

Parameters:
initialCapacity - an int value

TObjectHash

public TObjectHash(int initialCapacity,
                   float loadFactor)
Creates a new TObjectHash instance with a prime value at or near the specified capacity and load factor.

Parameters:
initialCapacity - used to find a prime capacity for the table.
loadFactor - used to calculate the threshold over which rehashing takes place.
Method Detail

capacity

public int capacity()
Specified by:
capacity in class THash
Returns:
the current physical capacity of the hash table.

removeAt

protected void removeAt(int index)
Description copied from class: THash
Delete the record at index. Reduces the size of the collection by one.

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

setUp

public int setUp(int initialCapacity)
initializes the Object set of this hash table.

Overrides:
setUp in class THash
Parameters:
initialCapacity - an int value
Returns:
an int value

forEach

public boolean forEach(TObjectProcedure<T> procedure)
Executes procedure for each element in the set.

Parameters:
procedure - a TObjectProcedure value
Returns:
false if the loop over the set terminated because the procedure returned false for some value.

contains

public boolean contains(java.lang.Object obj)
Searches the set for obj

Parameters:
obj - an Object value
Returns:
a boolean value

index

protected int index(java.lang.Object obj)
Locates the index of obj.

Parameters:
obj - an Object value
Returns:
the index of obj or -1 if it isn't in the set.

insertionIndex

protected int insertionIndex(T obj)
Locates the index at which obj can be inserted. if there is already a value equal()ing obj in the set, returns that value's index as -index - 1.

Parameters:
obj - an Object value
Returns:
the index of a FREE slot at which obj can be inserted or, if obj is already stored in the hash, the negative value of that index, minus 1: -index -1.

throwObjectContractViolation

protected final void throwObjectContractViolation(java.lang.Object o1,
                                                  java.lang.Object o2)
                                           throws java.lang.IllegalArgumentException
Convenience methods for subclasses to use in throwing exceptions about badly behaved user objects employed as keys. We have to throw an IllegalArgumentException with a rather verbose message telling the user that they need to fix their object implementation to conform to the general contract for java.lang.Object.

Parameters:
o1 - the first of the equal elements with unequal hash codes.
o2 - the second of the equal elements with unequal hash codes.
Throws:
java.lang.IllegalArgumentException - the whole point of this method.

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Specified by:
writeExternal in interface java.io.Externalizable
Overrides:
writeExternal in class THash
Throws:
java.io.IOException

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Specified by:
readExternal in interface java.io.Externalizable
Overrides:
readExternal in class THash
Throws:
java.io.IOException
java.lang.ClassNotFoundException


Copyright © 2007-2011 - Thomas Abeel - All Rights Reserved. SourceForge.netLogo