code: public T put(final T value) {
  		expungeStaleEntries();
  		//
  		final int hash = value.hashCode();
  		int index = (hash & 0x7FFFFFFF) % elementData.length;
  		Entry<T> entry = elementData[index];
  		while (entry != null && !eq(value, entry.get())) {
  			entry = entry.nextInSlot;
  		}
  
  		if (entry == null) {
  			if (++elementCount > threshold) {
  				expandElementArray(elementData.length);
  				index = (hash & 0x7FFFFFFF) % elementData.length;
  			}
  			entry = createHashedEntry(value, index);
  			return null;
  		}
  
  		final T result = entry.get();
  		return result;
  	}
docs: Puts the specified value in the set.
  
  @param value
  the value.
  @return the value of any previous put or {@code null} if there was no such value.