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