code: public final Object remove(Object key)
      {
          WeakEntry weakEntry = (WeakEntry) super.remove(key);
          Object value = null;
          if (weakEntry != null) {
              value = weakEntry.get();
              weakEntry.clear();
          } // if (weakEntry != null). 
          clearUnreferencedEntries();
          return value;
      }
docs: put().