cn.hutool.core.collection.TransIter Maven / Gradle / Ivy
package cn.hutool.core.collection;
import cn.hutool.core.lang.Assert;
import java.util.Iterator;
import java.util.function.Function;
/**
* 使用给定的转换函数,转换源{@link Iterator}为新类型的{@link Iterator}
*
* @param 源元素类型
* @param 目标元素类型
* @author looly
* @since 5.4.3
*/
public class TransIter implements Iterator {
private final Iterator extends F> backingIterator;
private final Function super F, ? extends T> func;
/**
* 构造
*
* @param backingIterator 源{@link Iterator}
* @param func 转换函数
*/
public TransIter(final Iterator extends F> backingIterator, final Function super F, ? extends T> func) {
this.backingIterator = Assert.notNull(backingIterator);
this.func = Assert.notNull(func);
}
@Override
public final boolean hasNext() {
return backingIterator.hasNext();
}
@Override
public final T next() {
return func.apply(backingIterator.next());
}
@Override
public final void remove() {
backingIterator.remove();
}
}