code: private void resize(int newSize)
    {
      long []newKeys = new long[newSize];
      Object []newValues = new Object[newSize];
      byte []newFlags = new byte[newSize];
  
      for (int i = 0; i < newSize; i++)
        newKeys[i] = DEAD_KEY;
  
      mask = newKeys.length - 1;
  
      for (int i = 0; i < keys.length; i++) {
        if (keys[i] == DEAD_KEY || (flags[i] & DELETED) != 0)
          continue;
  
        int hash = (int) keys[i] & mask;
  
        while (true) {
          if (newKeys[hash] == DEAD_KEY) {
            newKeys[hash] = keys[i];
            newValues[hash] = values[i];
            newFlags[hash] = flags[i];
            break;
          }
          hash = (hash + 1) & mask;
        }
      }
  
      keys = newKeys;
      values = newValues;
      flags = newFlags;
    }
docs: Expands the property table