base/common/src/main/com/thesett/common/util/doublemaps/SymbolTableImpl.java
public E remove(K primaryKey, L secondaryKey)
    {
        CompositeKey<K> compositeKey = new CompositeKey<K>(parentSequenceKey, primaryKey);

        // Check that the symbol exists in the table, and return null if not.
        if (!hashFunction.containsKey(compositeKey))
        {
            return null;
        }

        // Check that the field for the secondary key exists, and return null if not.
        CircularArrayMap<E> field = fieldMap.get(secondaryKey);

        if (field == null)
        {
            return null;
        }

        // Calculate the symbols index in the table, and use it to fetch remove a value for the field if one exists.
        E oldValue = field.remove(hashFunction.apply(compositeKey));

        // Check if the fields size has been reduced to zero, in which case purge that whole field from the symbol
        // table.
        if (field.isEmpty())
        {
            fieldMap.remove(secondaryKey);
        }

        // Check if an item was really removed from the table, and decrement the size count if so.
        if (oldValue != null)
        {
            count--;
        }

        return oldValue;
    }
public E remove(K primaryKey, L secondaryKey)
    {
        CompositeKey<K> compositeKey = new CompositeKey<K>(parentSequenceKey, primaryKey);

        // Check that the symbol exists in the table, and return null if not.
        if (!hashFunction.containsKey(compositeKey))
        {
            return null;
        }

        // Check that the field for the secondary key exists, and return null if not.
        CircularArrayMap<E> field = fieldMap.get(secondaryKey);

        if (field == null)
        {
            return null;
        }

        // Calculate the symbols index in the table, and use it to fetch remove a value for the field if one exists.
        E oldValue = field.remove(hashFunction.apply(compositeKey));

        // Check if the fields size has been reduced to zero, in which case purge that whole field from the symbol
        // table.
        if (field.isEmpty())
        {
            fieldMap.remove(secondaryKey);
        }

        // Check if an item was really removed from the table, and decrement the size count if so.
        if (oldValue != null)
        {
            count--;
        }

        return oldValue;
    }
{@inheritDoc}