Package gnu.trove.set.hash

# Class TCustomHashSet<E>

java.lang.Object
gnu.trove.impl.hash.THash
gnu.trove.impl.hash.TObjectHash<E>
gnu.trove.impl.hash.TCustomObjectHash<E>
gnu.trove.set.hash.TCustomHashSet<E>

All Implemented Interfaces:
  `Externalizable`, `Serializable`, `Iterable<E>`, `Collection<E>`, `Set<E>`

public class TCustomHashSet<E> extends gnu.trove.impl.hash.TCustomObjectHash<E> implements Set<E>, Iterable<E>, Externalizable
An implementation of the `Set` interface that uses an open-addressed hash table to store its contents.

See Also:
  - Serialized Form

## Field Summary

### Fields inherited from class gnu.trove.impl.hash.TCustomObjectHash

`strategy`

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

`_set, consumeFreeSlot, FREE, REMOVED`

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

`_autoCompactionFactor, _autoCompactRemovesRemaining, _autoCompactTemporaryDisable, _free, _loadFactor, _maxSize, _size, DEFAULT_CAPACITY, DEFAULT_LOAD_FACTOR`

## Constructor Summary

Constructors
Constructor
Description
`TCustomHashSet()`
FOR EXTERNALIZATION ONLY!!!
`TCustomHashSet(HashingStrategy<? super E> strategy)`
Creates a new `THashSet` instance with the default capacity and load factor.
`TCustomHashSet(HashingStrategy<? super E> strategy, int initialCapacity)`
Creates a new `THashSet` instance with a prime capacity equal to or greater than `initialCapacity` and with the default load factor.
`TCustomHashSet(HashingStrategy<? super E> strategy, 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.
`TCustomHashSet(HashingStrategy<? super E> strategy, Collection<? extends E> collection)`
Creates a new `THashSet` instance containing the elements of `collection`.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`add(E obj)`
Inserts a value into the set.
`boolean`
`addAll(Collection<? extends E> collection)`
Adds all of the elements in `collection` to the set.
`void`
`clear()`
Empties the set.
`boolean`
`containsAll(Collection<?> collection)`
Tests the set to determine if all of the elements in `collection` are present.
`boolean`
`equals(Object other)`
`int`
`hashCode()`
`TObjectHashIterator<E>`
`iterator()`
Creates an iterator over the values of the set.
`void`
`readExternal(ObjectInput in)`
`protected void`
`rehash(int newCapacity)`
Expands the set to accommodate new values.
`boolean`
`remove(Object obj)`
Removes `obj` from the set.
`boolean`
`removeAll(Collection<?> collection)`
Removes all of the elements in `collection` from the set.
`boolean`
`retainAll(Collection<?> collection)`
Removes any values in the set which are not contained in `collection`.
`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.
`String`
`toString()`
`void`
`writeExternal(ObjectOutput out)`

### Methods inherited from class gnu.trove.impl.hash.TCustomObjectHash

`equals, hash`

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

`buildObjectContractViolation, capacity, contains, dumpExtraInfo, forEach, index, insertionIndex, insertKey, objectInfo, removeAt, reportPotentialConcurrentMod, setUp, throwObjectContractViolation, throwObjectContractViolation`

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

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

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

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

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

`parallelStream, removeIf, stream, toArray`

### Methods inherited from interface java.lang.Iterable

`forEach`

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

`contains, isEmpty, size, spliterator`

## Constructor Details

### TCustomHashSet

public TCustomHashSet()
FOR EXTERNALIZATION ONLY!!!

### TCustomHashSet

public TCustomHashSet(HashingStrategy<? super E> strategy)
Creates a new `THashSet` instance with the default capacity and load factor.

### TCustomHashSet

public TCustomHashSet(HashingStrategy<? super E> strategy, 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

### TCustomHashSet

public TCustomHashSet(HashingStrategy<? super E> strategy, 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

### TCustomHashSet

public TCustomHashSet(HashingStrategy<? super E> strategy, Collection<? extends E> collection)
Creates a new `THashSet` instance containing the elements of `collection`.

Parameters:
  `collection` - a `Collection` value

## Method Details

### add

public boolean add(E obj)
Inserts a value into the set.

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

### equals

public boolean equals(Object other)

Specified by:
  `equals` in interface `Collection<E>`
Specified by:
  `equals` in interface `Set<E>`
Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Specified by:
  `hashCode` in interface `Collection<E>`
Specified by:
  `hashCode` in interface `Set<E>`
Overrides:
  `hashCode` in class `Object`

### rehash

protected void rehash(int newCapacity)
Expands the set to accommodate new values.

Specified by:
  `rehash` in class `gnu.trove.impl.hash.THash`
Parameters:
  `newCapacity` - an `int` value

### toArray

public Object[] toArray()
Returns a new array containing the objects in the set.

Specified by:
  `toArray` in interface `Collection<E>`
Specified by:
  `toArray` in interface `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 `Collection<E>`
Specified by:
  `toArray` in interface `Set<E>`
Parameters:
  `a` - an `Object[]` value
Returns:
  an `Object[]` value

### clear

public void clear()
Empties the set.

Specified by:
  `clear` in interface `Collection<E>`
Specified by:
  `clear` in interface `Set<E>`
Overrides:
  `clear` in class `gnu.trove.impl.hash.THash`

### remove

public boolean remove(Object obj)
Removes `obj` from the set.

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

### iterator

public TObjectHashIterator<E> iterator()
Creates an iterator over the values of the set. The iterator supports element deletion.

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

### containsAll

public boolean containsAll(Collection<?> collection)
Tests the set to determine if all of the elements in `collection` are present.

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

### addAll

public boolean addAll(Collection<? extends E> collection)
Adds all of the elements in `collection` to the set.

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

### removeAll

public boolean removeAll(Collection<?> collection)
Removes all of the elements in `collection` from the set.

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

### retainAll

public boolean retainAll(Collection<?> collection)
Removes any values in the set which are not contained in `collection`.

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

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### writeExternal

public void writeExternal(ObjectOutput out) throws IOException

Specified by:
  `writeExternal` in interface `Externalizable`
Overrides:
  `writeExternal` in class `gnu.trove.impl.hash.TCustomObjectHash<E>`
Throws:
  `IOException`

### readExternal

public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException

Specified by:
  `readExternal` in interface `Externalizable`
Overrides:
  `readExternal` in class `gnu.trove.impl.hash.TCustomObjectHash<E>`
Throws:
  `IOException`
  `ClassNotFoundException`