code: public Set<Map.Entry<K,V>> entrySet() {
          Set<Map.Entry<K,V>> es = entrySet;
          return es != null ? es : (entrySet = new EntrySet());
      }
docs: Returns a {@link Set} view of the mappings contained in this map.
  The set is backed by the map, so changes to the map are
  reflected in the set, and vice-versa.  If the map is modified
  while an iteration over the set is in progress (except through
  the iterator's own <tt>remove</tt> operation, or through the
  <tt>setValue</tt> operation on a map entry returned by the
  iterator) the results of the iteration are undefined.  The set
  supports element removal, which removes the corresponding
  mapping from the map, via the <tt>Iterator.remove</tt>,
  <tt>Set.remove</tt>, <tt>removeAll</tt>, <tt>retainAll</tt> and
  <tt>clear</tt> operations.  It does not support the
  <tt>add</tt> or <tt>addAll</tt> operations.