@Override
        public void remove() {
            if (this.current == null) {
                throw new IllegalStateException();
            }

            // remove from the global collection
            this.delegate.remove();

            // also remove the element from it's contained partition
            for (Set<E> partition : AbstractBucket.this.partitions) {
                partition.remove(this.current);
            }
        }
Class used to wrap the result of {@link Bucket}'s {@link #iterator()} method.

This wrapping overrides the #remove method, and ensures that when removed,
elements are also removed from their backing partition.
helper/src/main/java/me/lucko/helper/bucket/AbstractBucket.java