Package gnu.trove.map.hash

# Class TCustomHashMap<K,V>

java.lang.Object
gnu.trove.impl.hash.THash
gnu.trove.impl.hash.TObjectHash<K>
gnu.trove.impl.hash.TCustomObjectHash<K>
gnu.trove.map.hash.TCustomHashMap<K,V>

All Implemented Interfaces:
  `TMap<K,V>`, `Externalizable`, `Serializable`, `Map<K,V>`

public class TCustomHashMap<K,V> extends gnu.trove.impl.hash.TCustomObjectHash<K> implements TMap<K,V>, Externalizable
An implementation of the Map interface which uses an open addressed hash table to store its contents.

See Also:
  - Serialized Form

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`protected class`
`TCustomHashMap.EntryView`
a view onto the entries of the map.
`protected class`
`TCustomHashMap.KeyView`
a view onto the keys of the map.
`protected class`
`TCustomHashMap.ValueView`
a view onto the values of the map.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected V[]`
`_values`
the values of the map

### 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
`TCustomHashMap()`
FOR EXTERNALIZATION ONLY!!!
`TCustomHashMap(HashingStrategy<? super K> strategy)`
Creates a new `TCustomHashMap` instance with the default capacity and load factor.
`TCustomHashMap(HashingStrategy<? super K> strategy, int initialCapacity)`
Creates a new `TCustomHashMap` instance with a prime capacity equal to or greater than `initialCapacity` and with the default load factor.
`TCustomHashMap(HashingStrategy<? super K> strategy, int initialCapacity, float loadFactor)`
Creates a new `TCustomHashMap` instance with a prime capacity equal to or greater than `initialCapacity` and with the specified load factor.
`TCustomHashMap(HashingStrategy<? super K> strategy, TCustomHashMap<? extends K,? extends V> map)`
Creates a new `TCustomHashMap` instance which contains the key/value pairs in `map`.
`TCustomHashMap(HashingStrategy<? super K> strategy, Map<? extends K,? extends V> map)`
Creates a new `TCustomHashMap` instance which contains the key/value pairs in `map`.

## Method Summary

Modifier and Type
Method
Description
`void`
`clear()`
Empties the map.
`boolean`
`containsKey(Object key)`
checks for the present of `key` in the keys of the map.
`boolean`
`containsValue(Object val)`
checks for the presence of `val` in the values of the map.
`Set<Map.Entry<K,V>>`
`entrySet()`
Returns a Set view on the entries of the map.
`boolean`
`equals(Object other)`
Compares this map with another map for equality of their stored entries.
`boolean`
`forEachEntry(TObjectObjectProcedure<? super K,? super V> procedure)`
Executes `procedure` for each key/value entry in the map.
`boolean`
`forEachKey(TObjectProcedure<? super K> procedure)`
Executes `procedure` for each key in the map.
`boolean`
`forEachValue(TObjectProcedure<? super V> procedure)`
Executes `procedure` for each value in the map.
`V`
`get(Object key)`
retrieves the value for `key`
`int`
`hashCode()`
`Set<K>`
`keySet()`
returns a Set view on the keys of the map.
`V`
`put(K key, V value)`
Inserts a key/value pair into the map.
`void`
`putAll(Map<? extends K,? extends V> map)`
copies the key/value mappings in `map` into this map.
`V`
`putIfAbsent(K key, V value)`
Inserts a key/value pair into the map if the specified key is not already associated with a value.
`void`
`readExternal(ObjectInput in)`
`protected void`
`rehash(int newCapacity)`
rehashes the map to the new capacity.
`V`
`remove(Object key)`
Deletes a key/value pair from the map.
`void`
`removeAt(int index)`
removes the mapping at `index` from the map.
`boolean`
`retainEntries(TObjectObjectProcedure<? super K,? super V> procedure)`
Retains only those entries in the map for which the procedure returns a true value.
`int`
`setUp(int initialCapacity)`
initialize the value array of the map.
`String`
`toString()`
`void`
`transformValues(TObjectFunction<V,V> function)`
Transform the values in this map using `function`.
`Collection<V>`
`values()`
Returns a view on the values of the map.
`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, reportPotentialConcurrentMod, 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.Map

`compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, isEmpty, merge, remove, replace, replace, replaceAll, size`

## Field Details

### _values

protected transient V[] _values
the values of the map

## Constructor Details

### TCustomHashMap

public TCustomHashMap()
FOR EXTERNALIZATION ONLY!!!

### TCustomHashMap

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

### TCustomHashMap

public TCustomHashMap(HashingStrategy<? super K> strategy, int initialCapacity)
Creates a new `TCustomHashMap` instance with a prime capacity equal to or greater than `initialCapacity` and with the default load factor.

Parameters:
  `initialCapacity` - an `int` value

### TCustomHashMap

public TCustomHashMap(HashingStrategy<? super K> strategy, int initialCapacity, float loadFactor)
Creates a new `TCustomHashMap` 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

### TCustomHashMap

public TCustomHashMap(HashingStrategy<? super K> strategy, Map<? extends K,? extends V> map)
Creates a new `TCustomHashMap` instance which contains the key/value pairs in `map`.

Parameters:
  `map` - a `Map` value

### TCustomHashMap

public TCustomHashMap(HashingStrategy<? super K> strategy, TCustomHashMap<? extends K,? extends V> map)
Creates a new `TCustomHashMap` instance which contains the key/value pairs in `map`.

Parameters:
  `map` - a `Map` value

## Method Details

### setUp

public int setUp(int initialCapacity)
initialize the value array of the map.

Overrides:
  `setUp` in class `gnu.trove.impl.hash.TObjectHash<K>`
Parameters:
  `initialCapacity` - an `int` value
Returns:
  an `int` value

### put

public V put(K key, V value)
Inserts a key/value pair into the map.

Specified by:
  `put` in interface `Map<K,V>`
Parameters:
  `key` - an `Object` value
  `value` - an `Object` value
Returns:
  the previous value associated with `key`, or `null` if none was found.

### putIfAbsent

public V putIfAbsent(K key, V value)
Inserts a key/value pair into the map if the specified key is not already associated with a value.

Specified by:
  `putIfAbsent` in interface `Map<K,V>`
Specified by:
  `putIfAbsent` in interface `TMap<K,V>`
Parameters:
  `key` - an `Object` value
  `value` - an `Object` value
Returns:
  the previous value associated with `key`, or `null` if none was found.

### equals

public boolean equals(Object other)
Compares this map with another map for equality of their stored entries.

Specified by:
  `equals` in interface `Map<K,V>`
Overrides:
  `equals` in class `Object`
Parameters:
  `other` - an `Object` value
Returns:
  a `boolean` value

### hashCode

public int hashCode()

Specified by:
  `hashCode` in interface `Map<K,V>`
Overrides:
  `hashCode` in class `Object`

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### forEachKey

public boolean forEachKey(TObjectProcedure<? super K> procedure)
Executes `procedure` for each key in the map.

Specified by:
  `forEachKey` in interface `TMap<K,V>`
Parameters:
  `procedure` - a `TObjectProcedure` value
Returns:
  false if the loop over the keys terminated because the procedure returned false for some key.

### forEachValue

public boolean forEachValue(TObjectProcedure<? super V> procedure)
Executes `procedure` for each value in the map.

Specified by:
  `forEachValue` in interface `TMap<K,V>`
Parameters:
  `procedure` - a `TObjectProcedure` value
Returns:
  false if the loop over the values terminated because the procedure returned false for some value.

### forEachEntry

public boolean forEachEntry(TObjectObjectProcedure<? super K,? super V> procedure)
Executes `procedure` for each key/value entry in the map.

Specified by:
  `forEachEntry` in interface `TMap<K,V>`
Parameters:
  `procedure` - a `TObjectObjectProcedure` value
Returns:
  false if the loop over the entries terminated because the procedure returned false for some entry.

### retainEntries

public boolean retainEntries(TObjectObjectProcedure<? super K,? super V> procedure)
Retains only those entries in the map for which the procedure returns a true value.

Specified by:
  `retainEntries` in interface `TMap<K,V>`
Parameters:
  `procedure` - determines which entries to keep
Returns:
  true if the map was modified.

### transformValues

public void transformValues(TObjectFunction<V,V> function)
Transform the values in this map using `function`.

Specified by:
  `transformValues` in interface `TMap<K,V>`
Parameters:
  `function` - a `TObjectFunction` value

### rehash

protected void rehash(int newCapacity)
rehashes the map to the new capacity.

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

### get

public V get(Object key)
retrieves the value for `key`

Specified by:
  `get` in interface `Map<K,V>`
Parameters:
  `key` - an `Object` value
Returns:
  the value of `key` or null if no such mapping exists.

### clear

public void clear()
Empties the map.

Specified by:
  `clear` in interface `Map<K,V>`
Overrides:
  `clear` in class `gnu.trove.impl.hash.THash`

### remove

public V remove(Object key)
Deletes a key/value pair from the map.

Specified by:
  `remove` in interface `Map<K,V>`
Parameters:
  `key` - an `Object` value
Returns:
  an `Object` value

### removeAt

public void removeAt(int index)
removes the mapping at `index` from the map.

Overrides:
  `removeAt` in class `gnu.trove.impl.hash.TObjectHash<K>`
Parameters:
  `index` - an `int` value

### values

public Collection<V> values()
Returns a view on the values of the map.

Specified by:
  `values` in interface `Map<K,V>`
Returns:
  a `Collection` value

### keySet

public Set<K> keySet()
returns a Set view on the keys of the map.

Specified by:
  `keySet` in interface `Map<K,V>`
Returns:
  a `Set` value

### entrySet

public Set<Map.Entry<K,V>> entrySet()
Returns a Set view on the entries of the map.

Specified by:
  `entrySet` in interface `Map<K,V>`
Returns:
  a `Set` value

### containsValue

public boolean containsValue(Object val)
checks for the presence of `val` in the values of the map.

Specified by:
  `containsValue` in interface `Map<K,V>`
Parameters:
  `val` - an `Object` value
Returns:
  a `boolean` value

### containsKey

public boolean containsKey(Object key)
checks for the present of `key` in the keys of the map.

Specified by:
  `containsKey` in interface `Map<K,V>`
Parameters:
  `key` - an `Object` value
Returns:
  a `boolean` value

### putAll

public void putAll(Map<? extends K,? extends V> map)
copies the key/value mappings in `map` into this map.

Specified by:
  `putAll` in interface `Map<K,V>`
Parameters:
  `map` - a `Map` value

### writeExternal

public void writeExternal(ObjectOutput out) throws IOException

Specified by:
  `writeExternal` in interface `Externalizable`
Overrides:
  `writeExternal` in class `gnu.trove.impl.hash.TCustomObjectHash<K>`
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<K>`
Throws:
  `IOException`
  `ClassNotFoundException`