Package gnu.trove

Class TObjectHash<T>

    • 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 new TObjectHash instance with the default capacity and load factor.
      • TObjectHash

        public TObjectHash​(TObjectHashingStrategy<T> 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<T> 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<T> 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

      • clone

        public TObjectHash<T> clone()
        Overrides:
        clone in class THash
        Returns:
        a shallow clone of this collection
      • capacity

        protected 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

        protected 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​(T 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.
      • 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:
        computeHashCode in interface TObjectHashingStrategy<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:
        equals in interface TObjectHashingStrategy<T>
        Parameters:
        o1 - an Object value
        o2 - an Object value
        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.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