# Class Hashtable<K,V>

java.lang.Object
java.util.Dictionary<K,V>
java.util.Hashtable<K,V>

All Implemented Interfaces:
  `Map<K,V>`

public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>

Hashtable associates keys with values. Both keys and values cannot be null. The size of the Hashtable is the number of key/value pairs it contains. The capacity is the number of key/value pairs the Hashtable can hold. The load factor is a float value which determines how full the Hashtable gets before expanding the capacity. If the load factor of the Hashtable is exceeded, the capacity is doubled.

##### See also

- Enumeration

- java.io.Serializable

- java.lang.Object#equals

- java.lang.Object#hashCode

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Hashtable()`
  Constructs a new `Hashtable` using the default capacity and load factor.
  `Hashtable(int capacity)`
  Constructs a new `Hashtable` using the specified capacity and the default load factor.
  `Hashtable(int capacity, float loadFactor)`
  Constructs a new `Hashtable` using the specified capacity and load factor.
  `Hashtable(Map<? extends K, ? extends V> map)`
  Constructs a new instance of `Hashtable` containing the mappings from the specified map.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clear()`
  Removes all key/value pairs from this `Hashtable`, leaving the size zero and the capacity unchanged.
  `boolean`
  `contains(java.lang.Object value)`
  Returns true if this `Hashtable` contains the specified object as the value of at least one of the key/value pairs.
  `boolean`
  `containsKey(java.lang.Object key)`
  Returns true if this `Hashtable` contains the specified object as a key of one of the key/value pairs.
  `boolean`
  `containsValue(java.lang.Object value)`
  Searches this `Hashtable` for the specified value.
  `Enumeration<V>`
  `elements()`
  Returns an enumeration on the values of this `Hashtable`.
  `Set<Map.Entry<K,V>>`
  `entrySet()`
  Returns a set of the mappings contained in this `Hashtable`.
  `boolean`
  `equals(java.lang.Object object)`
  Compares this `Hashtable` with the specified object and indicates if they are equal.
  `V`
  `get(java.lang.Object key)`
  Returns the value associated with the specified key in this `Hashtable`.
  `int`
  `hashCode()`
  Returns an integer hash code for the receiver.
  `boolean`
  `isEmpty()`
  Returns true if this `Hashtable` has no key/value pairs.
  `Enumeration<K>`
  `keys()`
  Returns an enumeration on the keys of this `Hashtable` instance.
  `Set<K>`
  `keySet()`
  Returns a set of the keys contained in this `Hashtable`.
  `V`
  `put(K key, V value)`
  Associate the specified value with the specified key in this `Hashtable`.
  `void`
  `putAll(Map<? extends K, ? extends V> map)`
  Copies every mapping to this `Hashtable` from the specified map.
  `protected void`
  `rehash()`
  Increases the capacity of this `Hashtable`.
  `V`
  `remove(java.lang.Object key)`
  Removes the key/value pair with the specified key from this `Hashtable`.
  `int`
  `size()`
  Returns the number of key/value pairs in this `Hashtable`.
  `String`
  `toString()`
  Returns the string representation of this `Hashtable`.
  `Collection<V>`
  `values()`
  Returns a collection of the values contained in this `Hashtable`.

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

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

  ### Methods inherited from interface Map

  `compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll`

- ## Constructor Details

  - ### Hashtable

    public Hashtable()
    Constructs a new `Hashtable` using the default capacity and load factor.

  - ### Hashtable

    public Hashtable(int capacity)

    Constructs a new `Hashtable` using the specified capacity and the default load factor.

    ###### Parameters

    - `capacity`: the initial capacity.

  - ### Hashtable

    public Hashtable(int capacity, float loadFactor)

    Constructs a new `Hashtable` using the specified capacity and load factor.

    ###### Parameters

    - `capacity`: the initial capacity.

    - `loadFactor`: the initial load factor.

  - ### Hashtable

    public Hashtable(Map<? extends K, ? extends V> map)

    Constructs a new instance of `Hashtable` containing the mappings from the specified map.

    ###### Parameters

    - `map`: the mappings to add.

- ## Method Details

  - ### clear

    public void clear()

    Removes all key/value pairs from this `Hashtable`, leaving the size zero and the capacity unchanged.

    ###### See also

    - #isEmpty

    - #size

    Specified by:
      `clear` in interface `Map<K,V>`

  - ### contains

    public boolean contains(java.lang.Object value)

    Returns true if this `Hashtable` contains the specified object as the value of at least one of the key/value pairs.

    ###### Parameters

    - `value`: the object to look for as a value in this `Hashtable`.

    ###### Returns

    Returns:

      `true` if object is a value in this `Hashtable`, `false` otherwise.

      ###### See also

      - #containsKey

      - java.lang.Object#equals

  - ### containsKey

    public boolean containsKey(java.lang.Object key)

    Returns true if this `Hashtable` contains the specified object as a key of one of the key/value pairs.

    ###### Parameters

    - `key`: the object to look for as a key in this `Hashtable`.

    ###### Returns

    Specified by:
      `containsKey` in interface `Map<K,V>`
    Returns:

      `true` if object is a key in this `Hashtable`, `false` otherwise.

      ###### See also

      - #contains

      - java.lang.Object#equals

  - ### containsValue

    public boolean containsValue(java.lang.Object value)

    Searches this `Hashtable` for the specified value.

    ###### Parameters

    - `value`: the object to search for.

    ###### Returns

    Specified by:
      `containsValue` in interface `Map<K,V>`
    Returns:
      `true` if `value` is a value of this `Hashtable`, `false` otherwise.

  - ### elements

    public Enumeration<V> elements()

    Returns an enumeration on the values of this `Hashtable`. The results of the Enumeration may be affected if the contents of this `Hashtable` are modified.

    ###### Returns

    an enumeration of the values of this `Hashtable`.

    ###### See also

    - #keys

    - #size

    - Enumeration

    Specified by:
      `elements` in class `Dictionary<K,V>`

  - ### entrySet

    public Set<Map.Entry<K,V>> entrySet()

    Returns a set of the mappings contained in this `Hashtable`. Each element in the set is a `Map.Entry`. The set is backed by this `Hashtable` so changes to one are reflected by the other. The set does not support adding.

    ###### Returns

    a set of the mappings.

    Specified by:
      `entrySet` in interface `Map<K,V>`

  - ### equals

    public boolean equals(java.lang.Object object)

    Compares this `Hashtable` with the specified object and indicates if they are equal. In order to be equal, `object` must be an instance of Map and contain the same key/value pairs.

    ###### Parameters

    - `object`: the object to compare with this object.

    ###### Returns

    Specified by:
      `equals` in interface `Map<K,V>`
    Overrides:
      `equals` in class `java.lang.Object`
    Returns:

      `true` if the specified object is equal to this Map, `false` otherwise.

      ###### See also

      - #hashCode

  - ### get

    public V get(java.lang.Object key)

    Returns the value associated with the specified key in this `Hashtable`.

    ###### Parameters

    - `key`: the key of the value returned.

    ###### Returns

    Specified by:
      `get` in interface `Map<K,V>`
    Specified by:
      `get` in class `Dictionary<K,V>`
    Returns:

      the value associated with the specified key, or `null` if the specified key does not exist.

      ###### See also

      - #put

  - ### hashCode

    public int hashCode()
    Description copied from interface: `Map`

    Returns an integer hash code for the receiver. `Object`s which are equal return the same value for this method.

    ###### Returns

    the receiver's hash.

    ###### See also

    - #equals(Object)
    Specified by:
      `hashCode` in interface `Map<K,V>`
    Overrides:
      `hashCode` in class `java.lang.Object`

  - ### isEmpty

    public boolean isEmpty()

    Returns true if this `Hashtable` has no key/value pairs.

    ###### Returns

    Specified by:
      `isEmpty` in interface `Map<K,V>`
    Specified by:
      `isEmpty` in class `Dictionary<K,V>`
    Returns:

      `true` if this `Hashtable` has no key/value pairs, `false` otherwise.

      ###### See also

      - #size

  - ### keys

    public Enumeration<K> keys()

    Returns an enumeration on the keys of this `Hashtable` instance. The results of the enumeration may be affected if the contents of this `Hashtable` are modified.

    ###### Returns

    an enumeration of the keys of this `Hashtable`.

    ###### See also

    - #elements

    - #size

    - Enumeration

    Specified by:
      `keys` in class `Dictionary<K,V>`

  - ### keySet

    public Set<K> keySet()

    Returns a set of the keys contained in this `Hashtable`. The set is backed by this `Hashtable` so changes to one are reflected by the other. The set does not support adding.

    ###### Returns

    a set of the keys.

    Specified by:
      `keySet` in interface `Map<K,V>`

  - ### put

    public V put(K key, V value)

    Associate the specified value with the specified key in this `Hashtable`. If the key already exists, the old value is replaced. The key and value cannot be null.

    ###### Parameters

    - `key`: the key to add.

    - `value`: the value to add.

    ###### Returns

    Specified by:
      `put` in interface `Map<K,V>`
    Specified by:
      `put` in class `Dictionary<K,V>`
    Returns:

      the old value associated with the specified key, or `null` if the key did not exist.

      ###### See also

      - #elements

      - #get

      - #keys

      - java.lang.Object#equals

  - ### putAll

    public void putAll(Map<? extends K, ? extends V> map)

    Copies every mapping to this `Hashtable` from the specified map.

    ###### Parameters

    - `map`: the map to copy mappings from.
    Specified by:
      `putAll` in interface `Map<K,V>`

  - ### rehash

    protected void rehash()
    Increases the capacity of this `Hashtable`. This method is called when the size of this `Hashtable` exceeds the load factor.

  - ### remove

    public V remove(java.lang.Object key)

    Removes the key/value pair with the specified key from this `Hashtable`.

    ###### Parameters

    - `key`: the key to remove.

    ###### Returns

    Specified by:
      `remove` in interface `Map<K,V>`
    Specified by:
      `remove` in class `Dictionary<K,V>`
    Returns:

      the value associated with the specified key, or `null` if the specified key did not exist.

      ###### See also

      - #get

      - #put

  - ### size

    public int size()

    Returns the number of key/value pairs in this `Hashtable`.

    ###### Returns

    the number of key/value pairs in this `Hashtable`.

    ###### See also

    - #elements

    - #keys

    Specified by:
      `size` in interface `Map<K,V>`
    Specified by:
      `size` in class `Dictionary<K,V>`

  - ### toString

    public String toString()

    Returns the string representation of this `Hashtable`.

    ###### Returns

    the string representation of this `Hashtable`.

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

  - ### values

    public Collection<V> values()

    Returns a collection of the values contained in this `Hashtable`. The collection is backed by this `Hashtable` so changes to one are reflected by the other. The collection does not support adding.

    ###### Returns

    a collection of the values.

    Specified by:
      `values` in interface `Map<K,V>`