declare namespace java {
namespace util {
/**
* This class implements a hash table, 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
* performance: initial capacity and load factor. The
* capacity is the number of buckets in the hash table, and the
* initial capacity is simply the capacity at the time the hash table
* is created. Note that the hash table is open: in the case of a "hash
* collision", a single bucket stores multiple entries, which must be searched
* sequentially. The load factor is a measure of how full the hash
* table is allowed to get before its capacity is automatically increased.
* The initial capacity and load factor parameters are merely hints to
* the implementation. The exact details as to when and whether the rehash
* method is invoked are implementation-dependent.
* Generally, the default load factor (.75) offers a good tradeoff between * time and space costs. Higher values decrease the space overhead but * increase the time cost to look up an entry (which is reflected in most * Hashtable operations, including get and put).
* The initial capacity controls a tradeoff between wasted space and the
* need for rehash
operations, which are time-consuming.
* No rehash
operations will ever occur if the initial
* capacity is greater than the maximum number of entries the
* Hashtable will contain divided by its load factor. However,
* setting the initial capacity too high can waste space.
* 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: *
{@code * Hashtable*numbers * = new Hashtable (); * numbers.put("one", 1); * numbers.put("two", 2); * numbers.put("three", 3);}
To retrieve a number, use the following code: *
{@code * Integer n = numbers.get("two"); * if (n != null) { * System.out.println("two = " + n); * }}*
The iterators returned by the iterator method of the collections * returned by all of this class's "collection view methods" are * fail-fast: if the Hashtable is structurally modified at any time * after the iterator is created, in any way except through the iterator's own * remove method, the iterator will throw a {@link * ConcurrentModificationException}. Thus, in the face of concurrent * modification, the iterator fails quickly and cleanly, rather than risking * arbitrary, non-deterministic behavior at an undetermined time in the future. * The Enumerations returned by Hashtable's keys and elements methods are * not fail-fast. *
Note that the fail-fast behavior of an iterator cannot be guaranteed * as it is, generally speaking, impossible to make any hard guarantees in the * presence of unsynchronized concurrent modification. Fail-fast iterators * throw ConcurrentModificationException on a best-effort basis. * Therefore, it would be wrong to write a program that depended on this * exception for its correctness: the fail-fast behavior of iterators * should be used only to detect bugs. *
As of the Java 2 platform v1.2, this class was retrofitted to
* implement the {@link Map} interface, making it a member of the
*
* Java Collections Framework. Unlike the new collection
* implementations, {@code Hashtable} is synchronized. If a
* thread-safe implementation is not needed, it is recommended to use
* {@link HashMap} in place of {@code Hashtable}. If a thread-safe
* highly-concurrent implementation is desired, then it is recommended
* to use {@link java.util.concurrent.ConcurrentHashMap} in place of
* {@code Hashtable}.
* @author Arthur van Hoff
* @author Josh Bloch
* @author Neal Gafter
* @see Object#equals(java.lang.Object)
* @see Object#hashCode()
* @see Hashtable#rehash()
* @see Collection
* @see Map
* @see HashMap
* @see TreeMap
* @since JDK1.0
*/
// @ts-ignore
class Hashtable Note that this method is identical in functionality to
* {@link #containsValue containsValue}, (which is part of the
* {@link Map} interface in the collections framework).
* @param value a value to search for
* @return Note that this method is identical in functionality to {@link
* #contains contains} (which predates the {@link Map} interface).
* @param value value whose presence in this hashtable is to be tested
* @return true if this map maps one or more keys to the
* specified value
* @throws NullPointerException if the value is More formally, if this map contains a mapping from a key
* {@code k} to a value {@code v} such that {@code (key.equals(k))},
* then this method returns {@code v}; otherwise it returns
* {@code null}. (There can be at most one such mapping.)
* @param key the key whose associated value is to be returned
* @return the value to which the specified key is mapped, or
* {#code null} if this map contains no mapping for the key
* @throws NullPointerException if the specified key is null
* @see #put(Object, Object)
*/
// @ts-ignore
public get(key: java.lang.Object | any): V
/**
* Increases the capacity of and internally reorganizes this
* hashtable, in order to accommodate and access its entries more
* efficiently. This method is called automatically when the
* number of keys in the hashtable exceeds this hashtable's capacity
* and load factor.
*/
// @ts-ignore
rehash(): void
/**
* Maps the specified
* The value can be retrieved by calling the true
if this hashtable maps no keys to values;
* false
otherwise.
*/
// @ts-ignore
public isEmpty(): boolean
/**
* Returns an enumeration of the keys in this hashtable.
* @return an enumeration of the keys in this hashtable.
* @see Enumeration
* @see #elements()
* @see #keySet()
* @see Map
*/
// @ts-ignore
public keys(): java.util.Enumerationtrue
if and only if some key maps to the
* value
argument in this hashtable as
* determined by the equals method;
* false
otherwise.
* @exception NullPointerException if the value is null
*/
// @ts-ignore
public contains(value: java.lang.Object | any): boolean
/**
* Returns true if this hashtable maps one or more keys to this value.
* null
* @since 1.2
*/
// @ts-ignore
public containsValue(value: java.lang.Object | any): boolean
/**
* Tests if the specified object is a key in this hashtable.
* @param key possible key
* @return true
if and only if the specified object
* is a key in this hashtable, as determined by the
* equals method; false
otherwise.
* @throws NullPointerException if the key is null
* @see #contains(Object)
*/
// @ts-ignore
public containsKey(key: java.lang.Object | any): boolean
/**
* Returns the value to which the specified key is mapped,
* or {@code null} if this map contains no mapping for the key.
* key
to the specified
* value
in this hashtable. Neither the key nor the
* value can be null
. get
method
* with a key that is equal to the original key.
* @param key the hashtable key
* @param value the value
* @return the previous value of the specified key in this hashtable,
* or null
if it did not have one
* @exception NullPointerException if the key or value is
* null
* @see Object#equals(Object)
* @see #get(Object)
*/
// @ts-ignore
public put(key: K, value: V): V
/**
* Removes the key (and its corresponding value) from this
* hashtable. This method does nothing if the key is not in the hashtable.
* @param key the key that needs to be removed
* @return the value to which the key had been mapped in this hashtable,
* or null
if the key did not have a mapping
* @throws NullPointerException if the key is null
*/
// @ts-ignore
public remove(key: java.lang.Object | any): V
/**
* 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.
* @param t mappings to be stored in this map
* @throws NullPointerException if the specified map is null
* @since 1.2
*/
// @ts-ignore
public putAll(t: java.util.Map