Class TObjectHash<T>

    • Field Detail

      • _set

        protected transient Object[] _set
        the set of Objects
      • _hashingStrategy

        protected TObjectHashingStrategy<T> _hashingStrategy
        the strategy used to hash objects in this collection.
      • REMOVED

        protected static final Object REMOVED
      • FREE

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