public class

Hashtable

extends Dictionary<K, V>
implements Map<K, V>
java.lang.Object
   ↳ java.util.Dictionary<K, V>
     ↳ java.util.Hashtable<K, V>

Class Overview

This class implements a hashtable, which maps keys to values. Any non-null object can be used as a key or as a value.

To successfully store and retrieve objects from a hashtable, the objects used as keys must implement the hashCode method and the equals method.

An instance of Hashtable has two parameters that affect its efficiency: its capacity and its load factor. The load factor should be between 0.0 and 1.0. When the number of entries in the hashtable exceeds the product of the load factor and the current capacity, the capacity is increased by calling the rehash method. Larger load factors use memory more efficiently, at the expense of larger expected time per lookup.

If many entries are to be made into a Hashtable, creating it with a sufficiently large capacity may allow the entries to be inserted more efficiently than letting it perform automatic rehashing as needed to grow the table.

This example creates a hashtable of numbers. It uses the names of the numbers as keys:

 Hashtable numbers = new Hashtable();
 numbers.put("one", new Integer(1));
 numbers.put("two", new Integer(2));
 numbers.put("three", new Integer(3));
 

To retrieve a number, use the following code:

 Integer n = (Integer) numbers.get("two");
 if (n != null) {
 	System.out.println("two = " + n);
 }
 

Note: To conserve space, the CLDC implementation is based on JDK 1.1.8, not JDK 1.3.

Summary

Public Constructors
Hashtable(int initialCapacity, float loadFactor)
Constructs a new, empty hashtable with the specified initial capacity and the specified load factor.
Hashtable(int initialCapacity)
Constructs a new, empty hashtable with the specified initial capacity.
Hashtable()
Constructs a new, empty hashtable with a default capacity and load factor.
Hashtable(Map<? extends K, ? extends V> t)
Constructs a new hashtable with the same mappings as the given Map.
Public Methods
synchronized void clear()
Clears this hashtable so that it contains no keys.
synchronized boolean contains(Object value)
Tests if some key maps into the specified value in this hashtable.
synchronized boolean containsKey(Object key)
Tests if the specified object is a key in this hashtable.
boolean containsValue(Object value)
Returns true if this hashtable maps one or more keys to this value.
synchronized Enumeration<V> elements()
Returns an enumeration of the values in this hashtable.
Set<Entry<K, V>> entrySet()
Returns a Set view of the mappings contained in this map.
synchronized V get(Object key)
Returns the value to which the specified key is mapped in this hashtable.
boolean isEmpty()
Tests if this hashtable maps no keys to values.
Set<K> keySet()
Returns a Set view of the keys contained in this map.
synchronized Enumeration<K> keys()
Returns an enumeration of the keys in this hashtable.
synchronized V put(K key, V value)
Maps the specified key to the specified value in this hashtable.
synchronized void putAll(Map<? extends K, ? extends V> t)
Copies all of the mappings from the specified map to this hashtable.
synchronized V remove(Object key)
Removes the key (and its corresponding value) from this hashtable.
int size()
Returns the number of keys in this hashtable.
synchronized String toString()
Returns a rather long string representation of this hashtable.
Collection<V> values()
Returns a Collection view of the values contained in this map.
Protected Methods
void rehash()
Rehashes the contents of the hashtable into a hashtable with a larger capacity.
[Expand]
Inherited Methods
From class java.util.Dictionary
From class java.lang.Object
From interface java.util.Map

Public Constructors

public Hashtable (int initialCapacity, float loadFactor)

Constructs a new, empty hashtable with the specified initial capacity and the specified load factor.

Parameters
initialCapacity the initial capacity of the hashtable.
loadFactor the load factor of the hashtable.
Throws
IllegalArgumentException if the initial capacity is less than zero, or if the load factor is nonpositive.

public Hashtable (int initialCapacity)

Constructs a new, empty hashtable with the specified initial capacity.

Parameters
initialCapacity the initial capacity of the hashtable.
Throws
IllegalArgumentException if the initial capacity is less than zero

public Hashtable ()

Constructs a new, empty hashtable with a default capacity and load factor.

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

Constructs a new hashtable with the same mappings as the given Map. The hashtable is created with an initial capacity sufficient to hold the mappings in the given Map and a default load factor (0.75).

Parameters
t the map whose mappings are to be placed in this map.
Throws
NullPointerException if the specified map is null.

Public Methods

public synchronized void clear ()

Clears this hashtable so that it contains no keys.

public synchronized boolean contains (Object value)

Tests if some key maps into the specified value in this hashtable. This operation is more expensive than the containsKey method.

Parameters
value a value to search for.
Returns
  • true if some key maps to the value argument in this hashtable; false otherwise.
Throws
NullPointerException if the value is null.

public synchronized boolean containsKey (Object key)

Tests if the specified object is a key in this hashtable.

Parameters
key possible key.
Returns
  • true if the specified object is a key in this hashtable; false otherwise.

public boolean containsValue (Object value)

Returns true if this hashtable maps one or more keys to this value.

Note that this method is identical in functionality to contains (which predates the Map interface).

Parameters
value value whose presence in this hashtable is to be tested
Returns
  • true if this map maps one or more keys to the specified value
Throws
NullPointerException if the value is null

public synchronized Enumeration<V> elements ()

Returns an enumeration of the values in this hashtable. Use the Enumeration methods on the returned object to fetch the elements sequentially.

Returns
  • an enumeration of the values in this hashtable.

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

Returns a Set view of the mappings 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, or through the setValue operation on a map entry returned by the iterator) 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.

Returns
  • a set of the mappings

public synchronized V get (Object key)

Returns the value to which the specified key is mapped in this hashtable.

Parameters
key a key in the hashtable.
Returns
  • the value to which the key is mapped in this hashtable; null if the key is not mapped to any value in this hashtable.

public boolean isEmpty ()

Tests if this hashtable maps no keys to values.

Returns
  • true if this hashtable maps no keys to values; false otherwise.

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.

Returns
  • a set of the keys.

public synchronized Enumeration<K> keys ()

Returns an enumeration of the keys in this hashtable.

Returns
  • an enumeration of the keys in this hashtable.

public synchronized V put (K key, V value)

Maps the specified key to the specified value in this hashtable. Neither the key nor the value can be null.

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 of the specified key in this hashtable, or null if it did not have one.
Throws
NullPointerException if the key or value is null.

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

Copies all of the mappings from the specified map to this hashtable. These mappings will replace any mappings that this hashtable had for any of the keys currently in the specified map.

Parameters
t mappings to be stored in this map
Throws
NullPointerException if the specified map is null

public synchronized V remove (Object key)

Removes the key (and its corresponding value) from this hashtable. This method does nothing if the key is not in the hashtable.

Parameters
key the key that needs to be removed.
Returns
  • the value to which the key had been mapped in this hashtable, or null if the key did not have a mapping.

public int size ()

Returns the number of keys in this hashtable.

Returns
  • the number of keys in this hashtable.

public synchronized String toString ()

Returns a rather long string representation of this hashtable.

Returns
  • a string representation of this hashtable.

public Collection<V> values ()

Returns a Collection 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 Iterator.remove, Collection.remove, removeAll, retainAll and clear operations. It does not support the add or addAll operations.

Returns
  • a collection of the values contained in this map.

Protected Methods

protected void rehash ()

Rehashes the contents of the hashtable into a hashtable with a larger capacity. This method is called automatically when the number of keys in the hashtable exceeds this hashtable's capacity and load factor.