*/
    public void clear( G group ) {
        //Find group.
        final GroupNode<K, V>[] buckets = mGroupBuckets;
        final int               hash    = (group == null ? 0 : rehash( group.hashCode() ));
        final int               idx     = (hash & (buckets.length - 1));

        GroupNode<K, V> prevGroupNode = null;
        GroupNode<K, V> groupNode     = null;

        {
            groupNode = buckets[idx];

            while( groupNode != null ) {
                if( hash == groupNode.mHash && (group == groupNode.mGroup || group != null && group.equals( groupNode.mGroup )) ) {
                    break;
                }

                prevGroupNode = groupNode;
                groupNode = groupNode.mNext;
            }

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

        mModCount++;
        mGroupCount--;

        if( prevGroupNode == null ) {
            buckets[idx] = groupNode.mNext;
        } else {
            prevGroupNode.mNext = groupNode.mNext;
        }

        Node<K, V> node = firstNodeGroup( groupNode );

        while( node != null ) {
            removeNodeAll( node );
            removeNodeHash( node );
            node = nextNodeGroup( node );
        }
    }