code: @Override
      public Set entrySet() {
          if (entrySet != null) {
              return entrySet;
          }
          entrySet = new AbstractSet() {
              @Override
              public int size() {
                  return ReferenceMap.this.size();
              }
  
  
              @Override
              public void clear() {
                  ReferenceMap.this.clear();
              }
  
  
              @Override
              public boolean contains(final Object o) {
                  if (o == null) {
                      return false;
                  }
                  if (!(o instanceof Map.Entry)) {
                      return false;
                  }
                  final Map.Entry e = (Map.Entry) o;
                  final Entry e2 = getEntry(e.getKey());
                  return (e2 != null) && e.equals(e2);
              }
  
  
              @Override
              public boolean remove(final Object o) {
                  final boolean r = contains(o);
                  if (r) {
                      final Map.Entry e = (Map.Entry) o;
                      ReferenceMap.this.remove(e.getKey());
                  }
                  return r;
              }
  
  
              @Override
              public Iterator iterator() {
                  return new EntryIterator();
              }
  
              @Override
              public Object[] toArray() {
                  return toArray(new Object[0]);
              }
  
  
              @Override
              @SuppressWarnings("unchecked")
              public Object[] toArray(final Object[] arr) {
                  final List list = new ArrayList();
                  final Iterator iterator = iterator();
                  while (iterator.hasNext()) {
                      final Entry e = (Entry) iterator.next();
                      list.add(new DefaultMapEntry(e.getKey(), e.getValue()));
                  }
                  return list.toArray(arr);
              }
          };
          return entrySet;
      }
docs: Returns a set view of this map's entries.
  
  @return a set view of this map's entries