class LinearProbeLongLongHashMap extends AbstractLongIterable implements MutableLongLongMap, Resource {

    @Override
    public long removeKeyIfAbsent( long key, long ifAbsent )
    {
        ++modCount;

        if ( isSentinelKey( key ) )
        {
            return removeForSentinelKey( key, ifAbsent );
        }

        final int idx = indexOf( key );
        final long keyAtIdx = getKeyAt( idx );

        if ( keyAtIdx != key )
        {
            return ifAbsent;
        }

        setKeyAt( idx, REMOVED_KEY );
        --entriesInMemory;
        ++removals;

        final long oldValue = getValueAt( idx );

        if ( removals >= resizeRemovalsThreshold )
        {
            rehashWithoutGrow();
        }

        return oldValue;
    }

      LinearProbeLongLongHashMap( MemoryAllocator allocator );

}