Package gnu.trove
Class TObjectHash<T>
- java.lang.Object
-
- gnu.trove.THash
-
- gnu.trove.TObjectHash<T>
-
- All Implemented Interfaces:
TObjectHashingStrategy<T>,java.io.Externalizable,java.io.Serializable,java.lang.Cloneable
- Direct Known Subclasses:
THashMap,THashSet,TObjectByteHashMap,TObjectDoubleHashMap,TObjectFloatHashMap,TObjectIntHashMap,TObjectLongHashMap,TObjectShortHashMap
public abstract class TObjectHash<T> extends THash implements TObjectHashingStrategy<T>
An open addressed hashing implementation for Object types. Created: Sun Nov 4 08:56:06 2001- Version:
- $Id: TObjectHash.java,v 1.27 2009/06/01 22:14:44 robeden Exp $
- Author:
- Eric D. Friedman
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected TObjectHashingStrategy<T>_hashingStrategythe strategy used to hash objects in this collection.protected java.lang.Object[]_setthe set of Objectsprotected static java.lang.ObjectFREEprotected static java.lang.ObjectREMOVED-
Fields inherited from class gnu.trove.THash
_autoCompactionFactor, _autoCompactRemovesRemaining, _free, _loadFactor, _maxSize, _size, DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR
-
-
Constructor Summary
Constructors Constructor Description TObjectHash()Creates a newTObjectHashinstance with the default capacity and load factor.TObjectHash(int initialCapacity)Creates a newTObjectHashinstance whose capacity is the next highest prime above initialCapacity + 1 unless that value is already prime.TObjectHash(int initialCapacity, float loadFactor)Creates a newTObjectHashinstance with a prime value at or near the specified capacity and load factor.TObjectHash(int initialCapacity, float loadFactor, TObjectHashingStrategy<T> strategy)Creates a newTObjectHashinstance with a prime value at or near the specified capacity and load factor.TObjectHash(int initialCapacity, TObjectHashingStrategy<T> strategy)Creates a newTObjectHashinstance whose capacity is the next highest prime above initialCapacity + 1 unless that value is already prime.TObjectHash(TObjectHashingStrategy<T> strategy)Creates a newTObjectHashinstance with the default capacity and load factor and a custom hashing strategy.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intcapacity()TObjectHash<T>clone()intcomputeHashCode(T o)This is the default implementation of TObjectHashingStrategy: it delegates hashing to the Object's hashCode method.booleancontains(java.lang.Object obj)Searches the set for objbooleanequals(T o1, T o2)This is the default implementation of TObjectHashingStrategy: it delegates equality comparisons to the first parameter's equals() method.booleanforEach(TObjectProcedure<T> procedure)Executes procedure for each element in the set.protected intindex(T obj)Locates the index of obj.protected intinsertionIndex(T obj)Locates the index at which obj can be inserted.voidreadExternal(java.io.ObjectInput in)protected voidremoveAt(int index)Delete the record at index.protected intsetUp(int initialCapacity)initializes the Object set of this hash table.protected voidthrowObjectContractViolation(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.voidwriteExternal(java.io.ObjectOutput out)-
Methods inherited from class gnu.trove.THash
calculateGrownCapacity, clear, compact, ensureCapacity, getAutoCompactionFactor, isEmpty, postInsertHook, reenableAutoCompaction, rehash, setAutoCompactionFactor, size, tempDisableAutoCompaction, trimToSize
-
-
-
-
Field Detail
-
_set
protected transient java.lang.Object[] _set
the set of Objects
-
_hashingStrategy
protected TObjectHashingStrategy<T> _hashingStrategy
the strategy used to hash objects in this collection.
-
REMOVED
protected static final java.lang.Object REMOVED
-
FREE
protected static final java.lang.Object FREE
-
-
Constructor Detail
-
TObjectHash
public TObjectHash()
Creates a newTObjectHashinstance with the default capacity and load factor.
-
TObjectHash
public TObjectHash(TObjectHashingStrategy<T> strategy)
Creates a newTObjectHashinstance 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 newTObjectHashinstance whose capacity is the next highest prime above initialCapacity + 1 unless that value is already prime.- Parameters:
initialCapacity- anintvalue
-
TObjectHash
public TObjectHash(int initialCapacity, TObjectHashingStrategy<T> strategy)Creates a newTObjectHashinstance whose capacity is the next highest prime above initialCapacity + 1 unless that value is already prime. Uses the specified custom hashing strategy.- Parameters:
initialCapacity- anintvaluestrategy- used to compute hash codes and to compare objects.
-
TObjectHash
public TObjectHash(int initialCapacity, float loadFactor)Creates a newTObjectHashinstance 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<T> strategy)Creates a newTObjectHashinstance 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
-
clone
public TObjectHash<T> clone()
-
capacity
protected int capacity()
-
removeAt
protected void removeAt(int index)
Description copied from class:THashDelete the record at index. Reduces the size of the collection by one.
-
setUp
protected int setUp(int initialCapacity)
initializes the Object set of this hash table.
-
forEach
public boolean forEach(TObjectProcedure<T> procedure)
Executes procedure for each element in the set.- Parameters:
procedure- aTObjectProcedurevalue- 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- anObjectvalue- Returns:
- a
booleanvalue
-
index
protected int index(T obj)
Locates the index of obj.- Parameters:
obj- anObjectvalue- 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- anObjectvalue- 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.
-
computeHashCode
public final int computeHashCode(T o)
This is the default implementation of TObjectHashingStrategy: it delegates hashing to the Object's hashCode method.- Specified by:
computeHashCodein interfaceTObjectHashingStrategy<T>- Parameters:
o- for which the hashcode is to be computed- Returns:
- the hashCode
- See Also:
Object.hashCode()
-
equals
public final boolean equals(T o1, T o2)
This is the default implementation of TObjectHashingStrategy: it delegates equality comparisons to the first parameter's equals() method.- Specified by:
equalsin interfaceTObjectHashingStrategy<T>- Parameters:
o1- anObjectvalueo2- anObjectvalue- Returns:
- true if the objects are equal
- See Also:
Object.equals(Object)
-
throwObjectContractViolation
protected final void throwObjectContractViolation(java.lang.Object o1, java.lang.Object o2) throws java.lang.IllegalArgumentExceptionConvenience 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:
writeExternalin interfacejava.io.Externalizable- Overrides:
writeExternalin classTHash- Throws:
java.io.IOException
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException- Specified by:
readExternalin interfacejava.io.Externalizable- Overrides:
readExternalin classTHash- Throws:
java.io.IOExceptionjava.lang.ClassNotFoundException
-
-