Dictionary (Java SE 23 & JDK 23)
Description: declaration: module: java.base, package: java.util, class: Dictionary
Keywords: java.util.Dictionary class

# Class Dictionary<K,V>

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

Type Parameters:
  `K` - the type of keys
  `V` - the type of mapped values

Direct Known Subclasses:
  `Hashtable`

public abstract class Dictionary<K,V> extends Object
The `Dictionary` class is the abstract parent of any class, such as `Hashtable`, which maps keys to values. Every key and every value is an object. In any one `Dictionary` object, every key is associated with at most one value. Given a `Dictionary` and a key, the associated element can be looked up. Any non-`null` object can be used as a key and as a value.

As a rule, the `equals` method should be used by implementations of this class to decide if two keys are the same.

NOTE: This class is obsolete. New implementations should implement the Map interface, rather than extending this class.

Since:
  1.0
See Also:
  - `Map`
  - `Object.equals(java.lang.Object)`
  - `Object.hashCode()`
  - `Hashtable`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Dictionary()`
  Sole constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract Enumeration<V>`
  `elements()`
  Returns an enumeration of the values in this dictionary.
  `abstract V`
  `get(Object key)`
  Returns the value to which the key is mapped in this dictionary.
  `abstract boolean`
  `isEmpty()`
  Tests if this dictionary maps no keys to value.
  `abstract Enumeration<K>`
  `keys()`
  Returns an enumeration of the keys in this dictionary.
  `abstract V`
  `put(K key, V value)`
  Maps the specified `key` to the specified `value` in this dictionary.
  `abstract V`
  `remove(Object key)`
  Removes the `key` (and its corresponding `value`) from this dictionary.
  `abstract int`
  `size()`
  Returns the number of entries (distinct keys) in this dictionary.

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Dictionary

    public Dictionary()
    Sole constructor. (For invocation by subclass constructors, typically implicit.)

- ## Method Details

  - ### size

    public abstract int size()
    Returns the number of entries (distinct keys) in this dictionary.
    Returns:
      the number of keys in this dictionary.

  - ### isEmpty

    public abstract boolean isEmpty()
    Tests if this dictionary maps no keys to value. The general contract for the `isEmpty` method is that the result is true if and only if this dictionary contains no entries.
    Returns:
      `true` if this dictionary maps no keys to values; `false` otherwise.

  - ### keys

    public abstract Enumeration<K> keys()
    Returns an enumeration of the keys in this dictionary. The general contract for the keys method is that an `Enumeration` object is returned that will generate all the keys for which this dictionary contains entries.
    Returns:
      an enumeration of the keys in this dictionary.
    See Also:
      - `elements()`
      - `Enumeration`

  - ### elements

    public abstract Enumeration<V> elements()
    Returns an enumeration of the values in this dictionary. The general contract for the `elements` method is that an `Enumeration` is returned that will generate all the elements contained in entries in this dictionary.
    Returns:
      an enumeration of the values in this dictionary.
    See Also:
      - `keys()`
      - `Enumeration`

  - ### get

    public abstract V get(Object key)
    Returns the value to which the key is mapped in this dictionary. The general contract for the `isEmpty` method is that if this dictionary contains an entry for the specified key, the associated value is returned; otherwise, `null` is returned.
    Parameters:
      `key` - a key in this dictionary. `null` if the key is not mapped to any value in this dictionary.
    Returns:
      the value to which the key is mapped in this dictionary;
    Throws:
      `NullPointerException` - if the `key` is `null`.
    See Also:
      - `put(java.lang.Object, java.lang.Object)`

  - ### put

    public abstract V put(K key, V value)
    Maps the specified `key` to the specified `value` in this dictionary. Neither the key nor the value can be `null`.

    If this dictionary already contains an entry for the specified `key`, the value already in this dictionary for that `key` is returned, after modifying the entry to contain the new element.

    If this dictionary does not already have an entry for the specified `key`, an entry is created for the specified `key` and `value`, and `null` is returned.

    The `value` can be retrieved by calling the `get` method with a `key` that is equal to the original `key`.

    Parameters:
      `key` - the hashtable key.
      `value` - the value.
    Returns:
      the previous value to which the `key` was mapped in this dictionary, or `null` if the key did not have a previous mapping.
    Throws:
      `NullPointerException` - if the `key` or `value` is `null`.
    See Also:
      - `Object.equals(java.lang.Object)`
      - `get(java.lang.Object)`

  - ### remove

    public abstract V remove(Object key)
    Removes the `key` (and its corresponding `value`) from this dictionary. This method does nothing if the `key` is not in this dictionary.
    Parameters:
      `key` - the key that needs to be removed.
    Returns:
      the value to which the `key` had been mapped in this dictionary, or `null` if the key did not have a mapping.
    Throws:
      `NullPointerException` - if `key` is `null`.