I expected remove() method removes negative values and prints only positive integers, but output is -1 -2 -3 4
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class GenericSetTester {
public static void main(String[] args) {
Set<Integer> integerSet = new HashSet<>();
integerSet.add(0);
integerSet.add(1);
integerSet.add(2);
integerSet.add(3);
integerSet.add(4);
integerSet.add(-1);
integerSet.add(-2);
integerSet.add(-3);
for(Iterator<Integer> in = integerSet.iterator(); in.hasNext();){
if(in.next() < 0)
in.remove();
int i = in.next();
System.out.printf("%d ",i);
}
}
}