gnu.trove

## Class THashSet<E>

- java.lang.Object
- - gnu.trove.THash
  - - gnu.trove.TObjectHash<E>
    - - gnu.trove.THashSet<E>

All Implemented Interfaces:
  TObjectHashingStrategy<E>, java.io.Externalizable, java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<E>, java.util.Collection<E>, java.util.Set<E>

    public class THashSet<E>
    extends TObjectHash<E>
    implements java.util.Set<E>, java.lang.Iterable<E>, java.io.Externalizable

An implementation of the `Set` interface that uses an open-addressed hash table to store its contents. Created: Sat Nov 3 10:38:17 2001

Version:
  $Id: THashSet.java,v 1.21 2008/10/07 20:33:56 robeden Exp $
Author:
  Eric D. Friedman
See Also:
  Serialized Form

### Field Summary

### Fields inherited from class gnu.trove.TObjectHash

`_hashingStrategy, _set, FREE, REMOVED`

### Fields inherited from class gnu.trove.THash

`_autoCompactionFactor, _autoCompactRemovesRemaining, _free, _loadFactor, _maxSize, _size, DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR`

### Constructor Summary

Constructors
Constructor and Description
`THashSet()` Creates a new `THashSet` instance with the default capacity and load factor.
`THashSet(java.util.Collection<? extends E> collection)` Creates a new `THashSet` instance containing the elements of `collection`.
`THashSet(java.util.Collection<? extends E> collection, TObjectHashingStrategy<E> strategy)` Creates a new `THashSet` instance containing the elements of `collection`.
`THashSet(int initialCapacity)` Creates a new `THashSet` instance with a prime capacity equal to or greater than `initialCapacity` and with the default load factor.
`THashSet(int initialCapacity, float loadFactor)` Creates a new `THashSet` instance with a prime capacity equal to or greater than `initialCapacity` and with the specified load factor.
`THashSet(int initialCapacity, float loadFactor, TObjectHashingStrategy<E> strategy)` Creates a new `THashSet` instance with a prime capacity equal to or greater than `initialCapacity` and with the specified load factor.
`THashSet(int initialCapacity, TObjectHashingStrategy<E> strategy)` Creates a new `THashSet` instance with a prime capacity equal to or greater than `initialCapacity` and with the default load factor.
`THashSet(TObjectHashingStrategy<E> strategy)` Creates a new `THashSet` instance with the default capacity and load factor.

### Method Summary

Methods
`boolean` `add(E obj)` Inserts a value into the set.
`boolean` `addAll(java.util.Collection<? extends E> collection)` Adds all of the elements in `collection` to the set.
`void` `clear()` Empties the set.
`boolean` `containsAll(java.util.Collection<?> collection)` Tests the set to determine if all of the elements in `collection` are present.
`boolean` `equals(java.lang.Object other)`
`int` `hashCode()`
`java.util.Iterator<E>` `iterator()` Creates an iterator over the values of the set.
`void` `readExternal(java.io.ObjectInput in)`
`protected void` `rehash(int newCapacity)` Expands the set to accommodate new values.
`boolean` `remove(java.lang.Object obj)` Removes `obj` from the set.
`boolean` `removeAll(java.util.Collection<?> collection)` Removes all of the elements in `collection` from the set.
`boolean` `retainAll(java.util.Collection<?> collection)` Removes any values in the set which are not contained in `collection`.
`java.lang.Object[]` `toArray()` Returns a new array containing the objects in the set.
`<T> T[]` `toArray(T[] a)` Returns a typed array of the objects in the set.
`java.lang.String` `toString()`
`void` `writeExternal(java.io.ObjectOutput out)`

### Methods inherited from class gnu.trove.TObjectHash

`capacity, clone, computeHashCode, contains, equals, forEach, index, insertionIndex, removeAt, setUp, throwObjectContractViolation`

### Methods inherited from class gnu.trove.THash

`calculateGrownCapacity, compact, ensureCapacity, getAutoCompactionFactor, isEmpty, postInsertHook, reenableAutoCompaction, setAutoCompactionFactor, size, tempDisableAutoCompaction, trimToSize`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.Set

`contains, isEmpty, size`

### Constructor Detail

#### THashSet

    public THashSet()

Creates a new `THashSet` instance with the default capacity and load factor.

#### THashSet

    public THashSet(TObjectHashingStrategy<E> strategy)

Creates a new `THashSet` instance with the default capacity and load factor.

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

#### THashSet

    public THashSet(int initialCapacity)

Creates a new `THashSet` instance with a prime capacity equal to or greater than `initialCapacity` and with the default load factor.

Parameters:
  `initialCapacity` - an `int` value

#### THashSet

    public THashSet(int initialCapacity,
            TObjectHashingStrategy<E> strategy)

Creates a new `THashSet` instance with a prime capacity equal to or greater than `initialCapacity` and with the default load factor.

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

#### THashSet

    public THashSet(int initialCapacity,
            float loadFactor)

Creates a new `THashSet` instance with a prime capacity equal to or greater than `initialCapacity` and with the specified load factor.

Parameters:
  `initialCapacity` - an `int` value
  `loadFactor` - a `float` value

#### THashSet

    public THashSet(int initialCapacity,
            float loadFactor,
            TObjectHashingStrategy<E> strategy)

Creates a new `THashSet` instance with a prime capacity equal to or greater than `initialCapacity` and with the specified load factor.

Parameters:
  `initialCapacity` - an `int` value
  `loadFactor` - a `float` value
  `strategy` - used to compute hash codes and to compare objects.

#### THashSet

    public THashSet(java.util.Collection<? extends E> collection)

Creates a new `THashSet` instance containing the elements of `collection`.

Parameters:
  `collection` - a `Collection` value

#### THashSet

    public THashSet(java.util.Collection<? extends E> collection,
            TObjectHashingStrategy<E> strategy)

Creates a new `THashSet` instance containing the elements of `collection`.

Parameters:
  `collection` - a `Collection` value
  `strategy` - used to compute hash codes and to compare objects.

### Method Detail

#### add

    public boolean add(E obj)

Inserts a value into the set.

Specified by:
  `add` in interface `java.util.Collection<E>`
Specified by:
  `add` in interface `java.util.Set<E>`
Parameters:
  `obj` - an `Object` value
Returns:
  true if the set was modified by the add operation

#### equals

    public boolean equals(java.lang.Object other)

Specified by:
  `equals` in interface `java.util.Collection<E>`
Specified by:
  `equals` in interface `java.util.Set<E>`
Overrides:
  `equals` in class `java.lang.Object`

#### hashCode

    public int hashCode()

Specified by:
  `hashCode` in interface `java.util.Collection<E>`
Specified by:
  `hashCode` in interface `java.util.Set<E>`
Overrides:
  `hashCode` in class `java.lang.Object`

#### rehash

    protected void rehash(int newCapacity)

Expands the set to accommodate new values.

Specified by:
  `rehash` in class `THash`
Parameters:
  `newCapacity` - an `int` value

#### toArray

    public java.lang.Object[] toArray()

Returns a new array containing the objects in the set.

Specified by:
  `toArray` in interface `java.util.Collection<E>`
Specified by:
  `toArray` in interface `java.util.Set<E>`
Returns:
  an `Object[]` value

#### toArray

    public <T> T[] toArray(T[] a)

Returns a typed array of the objects in the set.

Specified by:
  `toArray` in interface `java.util.Collection<E>`
Specified by:
  `toArray` in interface `java.util.Set<E>`
Parameters:
  `a` - an `Object[]` value
Returns:
  an `Object[]` value

#### clear

    public void clear()

Empties the set.

Specified by:
  `clear` in interface `java.util.Collection<E>`
Specified by:
  `clear` in interface `java.util.Set<E>`
Overrides:
  `clear` in class `THash`

#### remove

    public boolean remove(java.lang.Object obj)

Removes `obj` from the set.

Specified by:
  `remove` in interface `java.util.Collection<E>`
Specified by:
  `remove` in interface `java.util.Set<E>`
Parameters:
  `obj` - an `Object` value
Returns:
  true if the set was modified by the remove operation.

#### iterator

    public java.util.Iterator<E> iterator()

Creates an iterator over the values of the set. The iterator supports element deletion.

Specified by:
  `iterator` in interface `java.lang.Iterable<E>`
Specified by:
  `iterator` in interface `java.util.Collection<E>`
Specified by:
  `iterator` in interface `java.util.Set<E>`
Returns:
  an `Iterator` value

#### containsAll

    public boolean containsAll(java.util.Collection<?> collection)

Tests the set to determine if all of the elements in `collection` are present.

Specified by:
  `containsAll` in interface `java.util.Collection<E>`
Specified by:
  `containsAll` in interface `java.util.Set<E>`
Parameters:
  `collection` - a `Collection` value
Returns:
  true if all elements were present in the set.

#### addAll

    public boolean addAll(java.util.Collection<? extends E> collection)

Adds all of the elements in `collection` to the set.

Specified by:
  `addAll` in interface `java.util.Collection<E>`
Specified by:
  `addAll` in interface `java.util.Set<E>`
Parameters:
  `collection` - a `Collection` value
Returns:
  true if the set was modified by the add all operation.

#### removeAll

    public boolean removeAll(java.util.Collection<?> collection)

Removes all of the elements in `collection` from the set.

Specified by:
  `removeAll` in interface `java.util.Collection<E>`
Specified by:
  `removeAll` in interface `java.util.Set<E>`
Parameters:
  `collection` - a `Collection` value
Returns:
  true if the set was modified by the remove all operation.

#### retainAll

    public boolean retainAll(java.util.Collection<?> collection)

Removes any values in the set which are not contained in `collection`.

Specified by:
  `retainAll` in interface `java.util.Collection<E>`
Specified by:
  `retainAll` in interface `java.util.Set<E>`
Parameters:
  `collection` - a `Collection` value
Returns:
  true if the set was modified by the retain all operation

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### writeExternal

    public void writeExternal(java.io.ObjectOutput out)
                       throws java.io.IOException

Specified by:
  `writeExternal` in interface `java.io.Externalizable`
Overrides:
  `writeExternal` in class `TObjectHash<E>`
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 `TObjectHash<E>`
Throws:
  `java.io.IOException`
  `java.lang.ClassNotFoundException`