gnu.trove

Class TObjectHash

public abstract class TObjectHash extends THash implements Serializable, TObjectHashingStrategy

An open addressed hashing implementation for Object types. Created: Sun Nov 4 08:56:06 2001

Version: $Id: TObjectHash.java,v 1.15 2003/03/23 04:06:59 ericdf Exp $

Author: Eric D. Friedman

Field Summary
protected static ObjectREMOVED
protected TObjectHashingStrategy_hashingStrategy
the strategy used to hash objects in this collection.
protected Object[]_set
the set of Objects
Constructor Summary
TObjectHash()
Creates a new TObjectHash instance with the default capacity and load factor.
TObjectHash(TObjectHashingStrategy strategy)
Creates a new TObjectHash instance with the default capacity and load factor and a custom hashing strategy.
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, TObjectHashingStrategy strategy)
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.
TObjectHash(int initialCapacity, float loadFactor, TObjectHashingStrategy strategy)
Creates a new TObjectHash instance with a prime value at or near the specified capacity and load factor.
Method Summary
protected intcapacity()
Objectclone()
intcomputeHashCode(Object o)
This is the default implementation of TObjectHashingStrategy: it delegates hashing to the Object's hashCode method.
booleancontains(Object obj)
Searches the set for obj
booleanequals(Object o1, Object o2)
This is the default implementation of TObjectHashingStrategy: it delegates equality comparisons to the first parameter's equals() method.
booleanforEach(TObjectProcedure procedure)
Executes procedure for each element in the set.
protected intindex(Object obj)
Locates the index of obj.
protected intinsertionIndex(Object 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.
protected voidremoveAt(int index)
protected intsetUp(int initialCapacity)
initializes the Object set of this hash table.
protected voidthrowObjectContractViolation(Object o1, Object o2)
Convenience methods for subclasses to use in throwing exceptions about badly behaved user objects employed as keys.

Field Detail

REMOVED

protected static final Object REMOVED

_hashingStrategy

protected TObjectHashingStrategy _hashingStrategy
the strategy used to hash objects in this collection.

_set

protected transient Object[] _set
the set of Objects

Constructor Detail

TObjectHash

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

TObjectHash

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

Parameters: strategy used to compute hash codes and to compare objects.

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, TObjectHashingStrategy strategy)
Creates a new TObjectHash instance whose capacity is the next highest prime above initialCapacity + 1 unless that value is already prime. Uses the specified custom hashing strategy.

Parameters: initialCapacity an int value strategy used to compute hash codes and to compare objects.

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.

TObjectHash

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

Parameters: initialCapacity used to find a prime capacity for the table. loadFactor used to calculate the threshold over which rehashing takes place. strategy used to compute hash codes and to compare objects.

Method Detail

capacity

protected int capacity()

clone

public Object clone()

Returns: a shallow clone of this collection

computeHashCode

public final int computeHashCode(Object o)
This is the default implementation of TObjectHashingStrategy: it delegates hashing to the Object's hashCode method.

Parameters: object for which the hashcode is to be computed

Returns: the hashCode

See Also: Object#hashCode()

contains

public boolean contains(Object obj)
Searches the set for obj

Parameters: obj an Object value

Returns: a boolean value

equals

public final boolean equals(Object o1, Object o2)
This is the default implementation of TObjectHashingStrategy: it delegates equality comparisons to the first parameter's equals() method.

Parameters: o1 an Object value o2 an Object value

Returns: true if the objects are equal

See Also: Object#equals(Object)

forEach

public boolean forEach(TObjectProcedure 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.

index

protected int index(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(Object 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.

removeAt

protected void removeAt(int index)

setUp

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

Parameters: initialCapacity an int value

Returns: an int value

throwObjectContractViolation

protected final void throwObjectContractViolation(Object o1, Object o2)
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: IllegalArgumentException the whole point of this method.