import java.util.Iterator;

/** Una colección propia en un for-each, y lo que el for-each hace por dentro. */
public class RangeDemo {

    public static void main(String[] args) {
        NumberRange odds = new NumberRange(1, 10, 2);
        StringBuilder line = new StringBuilder("for-each:");
        for (int n : odds) {
            line.append(' ').append(n);
        }
        IO.println(line);

        // Lo mismo, escrito como lo traduce el compilador.
        line = new StringBuilder("iterador:");
        Iterator<Integer> it = odds.iterator();
        while (it.hasNext()) {
            int n = it.next();
            line.append(' ').append(n);
        }
        IO.println(line);

        // Dos recorridos a la vez: cada iterador tiene su propio cursor.
        int pairs = 0;
        for (int a : odds) {
            for (int b : odds) {
                if (a < b) {
                    pairs++;
                }
            }
        }
        IO.println("pares a < b: " + pairs);
    }
}
