Для простых циклов над массивами вы (обычно) не используете Iterator в Java.
for(int i=0;i < arrayOfInts.length ; i+2){
System.out.println(arrayOfInts[i]));
}
Идея итератора состоит в том, чтобы отделить способ хранения данных (может быть не массив) от их потребителя (код, который хочет перебрать его).
Вы правы, когда говорите, что Iterator является довольно базовой концепцией в библиотеке классов Java, настолько распространенной, что начиная с Java5 существует функция для каждого языка петель для ее поддержки. С помощью этого цикла пользователь даже не видит итератор.
for(Something element: listOfSomething){
System.out.println(element);
}
Если бы я реализовал «итератор с четным шагом», я бы основывал его на обычном итераторе, чтобы его можно было использовать с любым типом итерации.
public class EvenSteppingIterator<X> implements Iterator<X>{
private final Iterator<X> source;
public EvenSteppingIterator(Iterator<X> source){
this.source = source;
// skip the first one, start from the second
if (source.hasNext()) source.next();
}
public boolean hasNext() {
return source.hasNext();
}
public X next(){
X n = source.next();
// skip the next one
if (source.hasNext()) source.next();
return n;
}
}