/** * Creates a key set iterator. * Subclasses can override this to return iterators with different properties. * * @param iterator the iterator to decorate * @return the keySet iterator */ protected Iterator<K> createKeySetIterator(final Iterator<K> iterator) { return new KeySetIterator<>(iterator, this); }