Package org.mozilla.javascript

## Class Hashtable

- java.lang.Object
- - org.mozilla.javascript.Hashtable

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Iterable<Hashtable.Entry>`

      public class Hashtable
      extends java.lang.Object
      implements java.io.Serializable, java.lang.Iterable<Hashtable.Entry>

  This generic hash table class is used by Set and Map. It uses a standard HashMap for storing keys and values so that we can handle lots of hash collisions if necessary, and a doubly-linked list to support the iterator capability.

  This second one is important because JavaScript handling of the iterator is completely different from the way that Java does it. In Java an attempt to modify a collection on a HashMap or LinkedHashMap while iterating through it (except by using the "remove" method on the Iterator object itself) results in a ConcurrentModificationException. JavaScript Maps and Sets explicitly allow the collection to be modified, or even cleared completely, while iterators exist, and even lets an iterator keep on iterating on a collection that was empty when it was created..

  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `Hashtable.Entry` | One entry in the hash table.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Hashtable()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `clear()` |
    `java.lang.Object` | `delete​(java.lang.Object key)` | Deprecated. use deleteEntry(Object key) instead because this returns null if the entry was not found or the value of the entry is null
    `boolean` | `deleteEntry​(java.lang.Object key)` |
    `java.lang.Object` | `get​(java.lang.Object key)` | Deprecated. use getEntry(Object key) instead because this returns null if the entry was not found or the value of the entry is null
    `Hashtable.Entry` | `getEntry​(java.lang.Object key)` |
    `boolean` | `has​(java.lang.Object key)` |
    `java.util.Iterator<Hashtable.Entry>` | `iterator()` |
    `void` | `put​(java.lang.Object key, java.lang.Object value)` |
    `int` | `size()` |

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

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

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### Hashtable

          public Hashtable()

  - ### Method Detail

    - #### size

          public int size()

    - #### put

          public void put​(java.lang.Object key,
                          java.lang.Object value)

    - #### get

          public java.lang.Object get​(java.lang.Object key)

      Deprecated.
      use getEntry(Object key) instead because this returns null if the entry was not found or the value of the entry is null

    - #### getEntry

          public Hashtable.Entry getEntry​(java.lang.Object key)

    - #### has

          public boolean has​(java.lang.Object key)

    - #### delete

          public java.lang.Object delete​(java.lang.Object key)

      Deprecated.
      use deleteEntry(Object key) instead because this returns null if the entry was not found or the value of the entry is null

    - #### deleteEntry

          public boolean deleteEntry​(java.lang.Object key)

    - #### clear

          public void clear()

    - #### iterator

          public java.util.Iterator<Hashtable.Entry> iterator()

      Specified by:
        `iterator` in interface `java.lang.Iterable<Hashtable.Entry>`