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.private static class
Hashtable.Iter
-
Field Summary
Fields Modifier and Type Field Description private Hashtable.Entry
first
private Hashtable.Entry
last
private java.util.HashMap<java.lang.Object,Hashtable.Entry>
map
private static long
serialVersionUID
-
Constructor Summary
Constructors Constructor Description Hashtable()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
java.lang.Object
delete(java.lang.Object key)
java.lang.Object
get(java.lang.Object key)
boolean
has(java.lang.Object key)
java.util.Iterator<Hashtable.Entry>
iterator()
private static Hashtable.Entry
makeDummy()
void
put(java.lang.Object key, java.lang.Object value)
int
size()
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
map
private final java.util.HashMap<java.lang.Object,Hashtable.Entry> map
-
first
private Hashtable.Entry first
-
last
private Hashtable.Entry last
-
-
Method Detail
-
makeDummy
private static Hashtable.Entry makeDummy()
-
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)
-
has
public boolean has(java.lang.Object key)
-
delete
public java.lang.Object delete(java.lang.Object key)
-
clear
public void clear()
-
iterator
public java.util.Iterator<Hashtable.Entry> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<Hashtable.Entry>
-
-