docs: public int getAndAdd(final int key, final int amount)
      {
          final int[] entries = this.entries;
          final int initialValue = this.initialValue;
          @DoNotSub final int mask = entries.length - 1;
          @DoNotSub int index = Hashing.evenHash(key, mask);
          int oldValue = initialValue;
  
          while (entries[index + 1] != initialValue)
          {
              if (entries[index] == key)
              {
                  oldValue = entries[index + 1];
                  break;
              }
  
              index = next(index, mask);
          }
  
          if (amount != 0)
          {
              final int newValue = oldValue + amount;
              entries[index + 1] = newValue;
  
              if (oldValue == initialValue)
              {
                  ++size;
                  entries[index] = key;
                  increaseCapacity();
              }
              else if (newValue == initialValue)
              {
                  size--;
                  compactChain(index);
              }
          }
  
          return oldValue;
      }