Class Hashtable

java.lang.Object
org.mozilla.javascript.Hashtable
All Implemented Interfaces:
Serializable, Iterable<Hashtable.Entry>

public class Hashtable extends Object implements Serializable, 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:
  • Constructor Details

    • Hashtable

      public Hashtable()
  • Method Details

    • size

      public int size()
    • put

      public void put(Object key, Object value)
    • get

      @Deprecated public Object get(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(Object key)
    • has

      public boolean has(Object key)
    • delete

      @Deprecated public Object delete(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(Object key)
    • clear

      public void clear()
    • iterator

      public Iterator<Hashtable.Entry> iterator()
      Specified by:
      iterator in interface Iterable<Hashtable.Entry>