/** * Wraps an existing iterator and removes consecutive duplicate elements. * * @param iterator The iterator to deduplicate. * @param <T> The value type of the iterator. * @return An iterator which lazily deduplicates elements. */ public static <T> Iterator<T> deduplicatingIterator(final Iterator<T> iterator) { return new DeduplicatingIterator<>(iterator); }