package com.annimon.stream.operator;

import com.annimon.stream.function.Function;
import com.annimon.stream.iterator.LsaIterator;
import java.util.Iterator;
import org.jetbrains.annotations.NotNull;

public class ObjMap<T, R> extends LsaIterator<R> {

    private final Iterator<? extends T> iterator;
    private final Function<? super T, ? extends R> mapper;

    public ObjMap(
            @NotNull Iterator<? extends T> iterator,
            @NotNull Function<? super T, ? extends R> mapper) {
        this.iterator = iterator;
        this.mapper = mapper;
    }

    @Override
    public boolean hasNext() {
        return iterator.hasNext();
    }

    @Override
    public R nextIteration() {
        return mapper.apply(iterator.next());
    }
}

@@ -80,56 +80,8 @@
 on;%0A
-import com.annimon.stream.iterator.LsaIterator;%0A
 impo
@@ -176,19 +176,19 @@
  R%3E 
-extend
+implement
 s 
-Lsa
 Iter
@@ -507,32 +507,107 @@
  mapper;%0A    %7D%0A%0A
+    @Override%0A    public void remove() %7B%0A        iterator.remove();%0A    %7D%0A%0A
     @Override%0A  
@@ -712,17 +712,8 @@
 next
-Iteration
 () %7B

Remove hasNext checks in ObjMap