code: public Object put(long key, Object value)
    {
      int hash = (int) (key & mask);
      int count = size;
  
      while (count-- >= 0) {
        long testKey = keys[hash];
  
        if (testKey == DEAD_KEY || (flags[hash] & DELETED) != 0) {
          keys[hash] = key;
          values[hash] = value;
          flags[hash] = 0;
  
          size++;
  
          if (keys.length <= 2 * size)
            resize(2 * keys.length);
  
          return null;
        }
        else if (key != testKey) {
          hash = (hash + 1) & mask;
          continue;
        }
        else {
          Object old = values[hash];
  
          values[hash] = value;
  
          return old;
        }
      }
  
      return null;
    }
docs: Puts a new value in the property table with the appropriate flags