code: public int removeAndGet(final int key) {
  
          final int hash  = hashOf(key);
          int index = hash & mask;
          if (contains(key, index)) {
              return doRemove(index);
          }
  
          if (states[index] == FREE) {
              return missingEntries;
          }
  
          int j = index;
          for (int perturb = perturb(hash); states[index] != FREE; perturb >>= PERTURB_SHIFT) {
              j = probe(perturb, j);
              index = j & mask;
              if (contains(key, index)) {
                  return doRemove(index);
              }
          }
  
          return missingEntries;
      }
docs: Remove the value associated with a key.
  @param key key to which the value is associated
  @return removed value