This class implements a HashMap which has limited synchronization.
In particular mutators are generally synchronized while accessors
are generally not. Additionally the Iterators returned by this
class are not "fail-fast", but instead try to continue to iterate
over the data structure after changes have been made.
The synchronization semantics are built right in to the
implementation rather than using a delegating wrapper like the
other collection classes do because it wasn't clear to me that the
how the two should be seperated or that it would be useful to do
so. This can probably be a topic for further debate in the future.
This class is based heavily on the HashMap class in the Java
collections package.

ConcurrentHashMap

ConcurrentHashMap

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

get

Returns the value to which the specified key is mapped in this identity
hash map, or null if the map contains no mapping for this key.
A return value of null does not necessarily indicate
that the map contains no mapping for the key; it is also possible that
the map explicitly maps the key to null. The
containsKey method may be used to distinguish these two cases.

createEntry

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. The set supports element removal, which removes the
corresponding mapping from this map, via the Iterator.remove,
Set.remove, removeAll, retainAll, and
clear operations. It does not support the add or
addAll operations.

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. The collection supports element
removal, which removes the corresponding mapping from this map, via the
Iterator.remove, Collection.remove,
removeAll, retainAll, and clear operations.
It does not support the add or addAll operations.

entrySet

Returns a collection view of the mappings contained in this map. Each
element in the returned collection is a Map.Entry. The
collection is backed by the map, so changes to the map are reflected in
the collection, and vice-versa. 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.