Package gnu.trove.map.hash

# Class TObjectCharHashMap<K>

java.lang.Object
gnu.trove.impl.hash.THash
gnu.trove.impl.hash.TObjectHash<K>
gnu.trove.map.hash.TObjectCharHashMap<K>

All Implemented Interfaces:
  `TObjectCharMap<K>`, `Externalizable`, `Serializable`

public class TObjectCharHashMap<K> extends gnu.trove.impl.hash.TObjectHash<K> implements TObjectCharMap<K>, Externalizable
An open addressed Map implementation for Object keys and char values. Created: Sun Nov 4 08:52:45 2001

See Also:
  - Serialized Form

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`protected class`
`TObjectCharHashMap.KeyView`
a view onto the keys of the map.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected char[]`
`_values`
the values of the map
`protected char`
`no_entry_value`
the value that represents null

### 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
`TObjectCharHashMap()`
Creates a new `TObjectCharHashMap` instance with the default capacity and load factor.
`TObjectCharHashMap(int initialCapacity)`
Creates a new `TObjectCharHashMap` instance with a prime capacity equal to or greater than `initialCapacity` and with the default load factor.
`TObjectCharHashMap(int initialCapacity, float loadFactor)`
Creates a new `TObjectCharHashMap` instance with a prime capacity equal to or greater than `initialCapacity` and with the specified load factor.
`TObjectCharHashMap(int initialCapacity, float loadFactor, char noEntryValue)`
Creates a new `TObjectCharHashMap` instance with a prime value at or near the specified capacity and load factor.
`TObjectCharHashMap(TObjectCharMap<? extends K> map)`
Creates a new `TObjectCharHashMap` that contains the entries in the map passed to it.

## Method Summary

Modifier and Type
Method
Description
`char`
`adjustOrPutValue(K key, char adjust_amount, char put_amount)`
Adjusts the primitive value mapped to the key if the key is present in the map.
`boolean`
`adjustValue(K key, char amount)`
Adjusts the primitive value mapped to key.
`void`
`clear()`
Empties the collection.
`boolean`
`containsKey(Object key)`
Returns `true` if this map contains a mapping for the specified key.
`boolean`
`containsValue(char val)`
Returns `true` if this map maps one or more keys to the specified value.
`boolean`
`equals(Object other)`
Compares this map with another map for equality of their stored entries.
`boolean`
`forEachEntry(TObjectCharProcedure<? super K> 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(TCharProcedure procedure)`
Executes `procedure` for each value in the map.
`char`
`get(Object key)`
Returns the value to which the specified key is mapped, or `null` if this map contains no mapping for the key.
`char`
`getNoEntryValue()`
Returns the value that will be returned from `TObjectCharMap.get(java.lang.Object)` or `TObjectCharMap.put(K, char)` if no entry exists for a given key.
`int`
`hashCode()`
Returns the hash code value for this map.
`boolean`
`increment(K key)`
Increments the primitive value mapped to key by 1
`TObjectCharIterator<K>`
`iterator()`
Returns a `TObjectCharIterator` with access to this map's keys and values.
`Object[]`
`keys()`
Returns a copy of the keys of the map as an array.
`K[]`
`keys(K[] a)`
Returns a copy of the keys of the map as an array.
`Set<K>`
`keySet()`
Returns a `Set` view of the keys contained in this map.
`char`
`put(K key, char value)`
Associates the specified value with the specified key in this map (optional operation).
`void`
`putAll(TObjectCharMap<? extends K> map)`
Put all the entries from the given map into this map.
`void`
`putAll(Map<? extends K,? extends Character> map)`
Copies all of the mappings from the specified map to this map (optional operation).
`char`
`putIfAbsent(K key, char 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.
`char`
`remove(Object key)`
Removes the mapping for a key from this map if it is present (optional operation).
`protected void`
`removeAt(int index)`
Removes the mapping at `index` from the map.
`boolean`
`retainEntries(TObjectCharProcedure<? super K> procedure)`
Retains only those entries in the map for which the procedure returns a true value.
`int`
`setUp(int initialCapacity)`
initializes the hashtable to a prime capacity which is at least `initialCapacity + 1`.
`String`
`toString()`
`void`
`transformValues(TCharFunction function)`
Transform the values in this map using `function`.
`TCharCollection`
`valueCollection()`
Returns a `TCharCollection` view of the values contained in this map.
`char[]`
`values()`
Returns the values of the map as an array of `char` values.
`char[]`
`values(char[] array)`
Returns the values of the map using an existing array.
`void`
`writeExternal(ObjectOutput out)`

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

`buildObjectContractViolation, capacity, contains, dumpExtraInfo, equals, forEach, hash, 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 gnu.trove.map.TObjectCharMap

`isEmpty, size`

## Field Details

### _values

protected transient char[] _values
the values of the map

### no_entry_value

protected char no_entry_value
the value that represents null

## Constructor Details

### TObjectCharHashMap

public TObjectCharHashMap()
Creates a new `TObjectCharHashMap` instance with the default capacity and load factor.

### TObjectCharHashMap

public TObjectCharHashMap(int initialCapacity)
Creates a new `TObjectCharHashMap` instance with a prime capacity equal to or greater than `initialCapacity` and with the default load factor.

Parameters:
  `initialCapacity` - an `int` value

### TObjectCharHashMap

public TObjectCharHashMap(int initialCapacity, float loadFactor)
Creates a new `TObjectCharHashMap` 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

### TObjectCharHashMap

public TObjectCharHashMap(int initialCapacity, float loadFactor, char noEntryValue)
Creates a new `TObjectCharHashMap` 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.
  `noEntryValue` - the value used to represent null.

### TObjectCharHashMap

public TObjectCharHashMap(TObjectCharMap<? extends K> map)
Creates a new `TObjectCharHashMap` that contains the entries in the map passed to it.

Parameters:
  `map` - the `TObjectCharMap` to be copied.

## Method Details

### setUp

public int setUp(int initialCapacity)
initializes the hashtable to a prime capacity which is at least `initialCapacity + 1`.

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

### 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

### getNoEntryValue

public char getNoEntryValue()
Returns the value that will be returned from `TObjectCharMap.get(java.lang.Object)` or `TObjectCharMap.put(K, char)` if no entry exists for a given key. The default value is generally zero, but can be changed during construction of the collection.

Specified by:
  `getNoEntryValue` in interface `TObjectCharMap<K>`
Returns:
  the value that represents a null value in this collection.

### containsKey

public boolean containsKey(Object key)
Returns `true` if this map contains a mapping for the specified key. More formally, returns `true` if and only if this map contains a mapping for a key `k` such that `(key==null ? k==null : key.equals(k))`. (There can be at most one such mapping.)

Specified by:
  `containsKey` in interface `TObjectCharMap<K>`
Parameters:
  `key` - key whose presence in this map is to be tested
Returns:
  `true` if this map contains a mapping for the specified key

### containsValue

public boolean containsValue(char val)
Returns `true` if this map maps one or more keys to the specified value. More formally, returns `true` if and only if this map contains at least one mapping to a value `v` such that `(value==no_entry_value ? v==no_entry_value : value.equals(v))`. This operation will probably require time linear in the map size for most implementations of the `Map` interface.

Note that no_entry_value is the result of `TObjectCharMap.getNoEntryValue()` and represents null for this map instance.

Specified by:
  `containsValue` in interface `TObjectCharMap<K>`
Parameters:
  `val` - `char` value whose presence in this map is to be tested
Returns:
  `true` if this map maps one or more keys to the specified value

### get

public char get(Object key)
Returns the value to which the specified key is mapped, or `null` if this map contains no mapping for the key.

More formally, if this map contains a mapping from a key `k` to a value `v` such that `(key==null ? k==null : key.equals(k))`, then this method returns `v`; otherwise it returns `null`. (There can be at most one such mapping.)

If this map permits null values, then a return value of `null` does not necessarily indicate that the map contains no mapping for the key; it's also possible that the map explicitly maps the key to `null`. The `containsKey` operation may be used to distinguish these two cases.

Specified by:
  `get` in interface `TObjectCharMap<K>`
Parameters:
  `key` - the key whose associated value is to be returned
Returns:
  the `char` value to which the specified key is mapped, or `null` if this map contains no mapping for the key

### put

public char put(K key, char value)
Associates the specified value with the specified key in this map (optional operation). If the map previously contained a mapping for the key, the old value is replaced by the specified value. (A map `m` is said to contain a mapping for a key `k` if and only if `m.containsKey(k)` would return `true`.)

Specified by:
  `put` in interface `TObjectCharMap<K>`
Parameters:
  `key` - key with which the specified value is to be associated
  `value` - an `char` value value to be associated with the specified key
Returns:
  the previous value associated with `key`, or `no_entry_value` if there was no mapping for `key`. (A `no_entry_value` return can also indicate that the map previously associated `null` with `key`, if the implementation supports `null` values.)
See Also:
  - `TObjectCharMap.getNoEntryValue()`

### putIfAbsent

public char putIfAbsent(K key, char 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 `TObjectCharMap<K>`
Parameters:
  `key` - key with which the specified value is to be associated
  `value` - an `char` value to be associated with the specified key
Returns:
  the previous value associated with `key`, or the "no entry" value if none was found (see `TObjectCharMap.getNoEntryValue()`).

### remove

public char remove(Object key)
Removes the mapping for a key from this map if it is present (optional operation). More formally, if this map contains a mapping from key `k` to value `v` such that `(key==null ? k==null : key.equals(k))`, that mapping is removed. (The map can contain at most one such mapping.)

Returns the value to which this map previously associated the key, or `null` if the map contained no mapping for the key.

If this map permits null values, then a return value of `null` does not necessarily indicate that the map contained no mapping for the key; it's also possible that the map explicitly mapped the key to `null`.

The map will not contain a mapping for the specified key once the call returns.

Specified by:
  `remove` in interface `TObjectCharMap<K>`
Parameters:
  `key` - key whose mapping is to be removed from the map
Returns:
  the previous `char` value associated with `key`, or `null` if there was no mapping for `key`.

### removeAt

protected void removeAt(int index)
Removes the mapping at `index` from the map. This method is used internally and public mainly because of packaging reasons. Caveat Programmer.

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

### putAll

public void putAll(Map<? extends K,? extends Character> map)
Copies all of the mappings from the specified map to this map (optional operation). The effect of this call is equivalent to that of calling `put(k, v)` on this map once for each mapping from key `k` to value `v` in the specified map. The behavior of this operation is undefined if the specified map is modified while the operation is in progress.

Specified by:
  `putAll` in interface `TObjectCharMap<K>`
Parameters:
  `map` - mappings to be stored in this map

### putAll

public void putAll(TObjectCharMap<? extends K> map)
Put all the entries from the given map into this map.

Specified by:
  `putAll` in interface `TObjectCharMap<K>`
Parameters:
  `map` - The map from which entries will be obtained to put into this map.

### clear

public void clear()
Empties the collection.

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

### keySet

public Set<K> keySet()
Returns a `Set` view of the keys contained in this map. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own `remove` operation), the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the `Iterator.remove`, `Set.remove`, `removeAll`, `retainAll`, and `clear` operations. It does not support the `add` or `addAll` operations.

Specified by:
  `keySet` in interface `TObjectCharMap<K>`
Returns:
  a set view of the keys contained in this map

### keys

public Object[] keys()
Returns a copy of the keys of the map as an array. Changes to the array of keys will not be reflected in the map nor vice-versa.

Specified by:
  `keys` in interface `TObjectCharMap<K>`
Returns:
  a copy of the keys of the map as an array.

### keys

public K[] keys(K[] a)
Returns a copy of the keys of the map as an array. Changes to the array of keys will not be reflected in the map nor vice-versa.

Specified by:
  `keys` in interface `TObjectCharMap<K>`
Parameters:
  `a` - the array into which the elements of the list are to be stored, if it is big enough; otherwise, a new array of the same type is allocated for this purpose.
Returns:
  the keys of the map as an array.

### valueCollection

public TCharCollection valueCollection()
Returns a `TCharCollection` view of the values contained in this map. The collection is backed by the map, so changes to the map are reflected in the collection, and vice-versa. If the map is modified while an iteration over the collection is in progress (except through the iterator's own `remove` operation), the results of the iteration are undefined. The collection supports element removal, which removes the corresponding mapping from the map, via the `TCharIterator.remove`, `TCharCollection.remove`, `removeAll`, `retainAll` and `clear` operations. It does not support the `add` or `addAll` operations.

Specified by:
  `valueCollection` in interface `TObjectCharMap<K>`
Returns:
  a collection view of the values contained in this map

### values

public char[] values()
Returns the values of the map as an array of `char` values. Changes to the array of values will not be reflected in the map nor vice-versa.

Specified by:
  `values` in interface `TObjectCharMap<K>`
Returns:
  the values of the map as an array of `char` values.

### values

public char[] values(char[] array)
Returns the values of the map using an existing array. Changes to the array of values will not be reflected in the map nor vice-versa.

Specified by:
  `values` in interface `TObjectCharMap<K>`
Parameters:
  `array` - the array into which the elements of the list are to be stored, if it is big enough; otherwise, a new array of the same type is allocated for this purpose.
Returns:
  the values of the map as an array of `char` values.

### iterator

public TObjectCharIterator<K> iterator()
Description copied from interface: `TObjectCharMap`
Returns a `TObjectCharIterator` with access to this map's keys and values.

Specified by:
  `iterator` in interface `TObjectCharMap<K>`
Returns:
  an iterator over the entries in this map

### increment

public boolean increment(K key)
Increments the primitive value mapped to key by 1

Specified by:
  `increment` in interface `TObjectCharMap<K>`
Parameters:
  `key` - the key of the value to increment
Returns:
  true if a mapping was found and modified.

### adjustValue

public boolean adjustValue(K key, char amount)
Adjusts the primitive value mapped to key.

Specified by:
  `adjustValue` in interface `TObjectCharMap<K>`
Parameters:
  `key` - the key of the value to increment
  `amount` - the amount to adjust the value by.
Returns:
  true if a mapping was found and modified.

### adjustOrPutValue

public char adjustOrPutValue(K key, char adjust_amount, char put_amount)
Adjusts the primitive value mapped to the key if the key is present in the map. Otherwise, the `initial_value` is put in the map.

Specified by:
  `adjustOrPutValue` in interface `TObjectCharMap<K>`
Parameters:
  `key` - the key of the value to increment
  `adjust_amount` - the amount to adjust the value by
  `put_amount` - the value put into the map if the key is not initial present
Returns:
  the value present in the map after the adjustment or put operation

### forEachKey

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

Specified by:
  `forEachKey` in interface `TObjectCharMap<K>`
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(TCharProcedure procedure)
Executes `procedure` for each value in the map.

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

### forEachEntry

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

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

### retainEntries

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

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

### transformValues

public void transformValues(TCharFunction function)
Transform the values in this map using `function`.

Specified by:
  `transformValues` in interface `TObjectCharMap<K>`
Parameters:
  `function` - a `TCharFunction` value

### equals

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

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

### hashCode

public int hashCode()
Returns the hash code value for this map. The hash code of a map is defined to be the sum of the hash codes of each entry in the map's `entrySet()` view. This ensures that `m1.equals(m2)` implies that `m1.hashCode()==m2.hashCode()` for any two maps `m1` and `m2`, as required by the general contract of `Object.hashCode()`.

Specified by:
  `hashCode` in interface `TObjectCharMap<K>`
Overrides:
  `hashCode` in class `Object`
Returns:
  the hash code value for this map
See Also:
  - `Object.equals(Object)`
  - `TObjectCharMap.equals(Object)`

### writeExternal

public void writeExternal(ObjectOutput out) throws IOException

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

### toString

public String toString()

Overrides:
  `toString` in class `Object`