docs: public boolean add(E elementToAdd, int hash) {
          checkNotNull(elementToAdd);
  
          int index = hash & mask;
  
          // using the hashes array for looping and comparison if possible, hence we're cache friendly
          while (hashes[index] != 0 || table[index] != null) {
              if (hash == hashes[index] && elementToAdd.equals(table[index])) {
                  return false;
              }
              index = ++index & mask;
          }
  
          size++;
          version++;
  
          table[index] = elementToAdd;
          hashes[index] = hash;
  
          if (size > resizeThreshold) {
              increaseCapacity();
          }
  
          return true;
      }